Jump to content
IGNORED

Reverse engineering the old Myarc Personality Card backup/restore


acadiel

Recommended Posts

So.

 

I have a nice set of backup floppies from an old Myarc Personality Card that I'm trying to restore. The Myarc Personality Card was a 5MB or 10MB SASI drive, and predates the HFDC (which was MFM). It has a fun little disk manager program that is an XB/Assembly hybrid. I'm attaching it here, but let's talk about the thing's backup and restore functions.

 

BACKUP copied and filled up a diskette with a concatenated DIS/FIX 255 file, and incremented the number by one on each disk. The file has directory and file information (root was WDS1). and could restore back to the WDS1 directory.

 

Here's the very compact XB part of the hybrid backup and restore programs, and the disassembled assembly component to them, BACKUP/OBC and RESTOR/OBC. I've also attached the actual disk with the whole program on it (loads from XB).

 

Our goal here is to identify how exactly this thing is backing up and restoring. What is it looking for? What is the format of the restore file? How do I dump 12 diskettes backed into this format into something we can read? A few folks reading this got an email with some of what I was going through with this as well.

 

Let's crowd source this! Trust me, this is going to be worth it.

 

Thanks!

 

XB Restore:

10 CALL CLEAR :: S=5 :: F=16 :: CALL SCREEN(S) :: FOR I=1 TO 8 :: CALL COLOR(I,F,1) :: NEXT I :: CALL CHAR(95,"0000FFFFFFFF")
40 DATA RESTORING DIRECTORY:,FROM DISKETTE DRIVE NUMBER:,"BACKUP NAME: "
45 GOTO 89 :: ADDR,SUM,SUMDIR,SUMFIL,DKTDRV,FLOPCNT,OPT,OPN,I,LOAD,CODE,STAT,ST=FI :: CALL LOAD :: CALL LINK :: CALL PEEK :: CALL KEY
46 SUBDIR$=DIR$&BACKNAME$&DIRNAME$&DIRNAME2$&CHOICE$&LISTDEVICE$&U$&BACK$&A$&B$&C$&D$&FI$&DATE$&TIME$&SEC$&MIN$&HR$&DAY$&MON$&YR$ :: !@P-
89 SUBDIR$="" :: DIRNAME$="WDS" :: DIRNAME2$="" :: OPT=1 :: DKTDRV=1 :: LISTDEVICE$="RS232..BA=4800"
90 ADDR=-22890
95 SUM=0 :: SUMDIR=0 :: SUMFIL=0 :: BACKNAME$="-------" :: FLOPCNT=1
150 DISPLAY AT(1,1) ERASE ALL BEEP :"RESTORE DIRECTORY":RPT$("_",28)
170 DISPLAY AT(4,1):"ENTER DIRECTORY'S PATHNAME:":DIRNAME$:DIRNAME2$
175 DISPLAY AT(9,1):"BACKUP NAME: ";BACKNAME$
176 DISPLAY AT(8,1):"FROM DISKETTE DRIVE #(1-3):";STR$(DKTDRV)
177 DISPLAY AT(11,1):"IS ABOVE CORRECT ?":"(Y/N/A-ABORT) :Y"
178 DISPLAY AT(14,1):"WHERE DO YOU WANT LISTING?":"1-SCREEN":"2-OTHER":"ENTER OPTION :";OPT
180 ACCEPT AT(5,4) SIZE(-25):DIRNAME$
190 ACCEPT AT(6,1) SIZE(-15):DIRNAME2$
200 DIRNAME$="WDS"&DIRNAME$
210 ON WARNING NEXT
220 ACCEPT AT(8,28) VALIDATE ("123") SIZE(-1):DKTDRV
227 ACCEPT AT(9,14) SIZE(-7):BACKNAME$
240 ACCEPT AT(12,16) SIZE(-1) VALIDATE ("YNA"):CHOICE$
250 IF CHOICE$="A" THEN RUN "DSK..WIN..&DMMENU"
260 IF CHOICE$="N" THEN 180
270 IF CHOICE$<>"Y" THEN 230
350 ACCEPT SIZE(-1) AT(17,16) VALIDATE ("12"):OPT
360 IF OPT=1 THEN 400
365 IF OPT<>2 THEN 350
370 DISPLAY AT(18,1):"ENTER LIST DEVICE:":LISTDEVICE$
380 ACCEPT AT(19,1) SIZE(-28):LISTDEVICE$
385 IF OPN=1 THEN CLOSE #1
390 ON ERROR 6000 :: OPEN #1:LISTDEVICE$,OUTPUT :: OPN=1 :: ON ERROR STOP
400 DIR$=DIRNAME$&DIRNAME2$
405 IF LEN(DIR$)>40 THEN 5200
410 FOR I=7 TO 1 STEP -1 :: IF SEG$(BACKNAME$,I,1)="-" THEN BACKNAME$=SEG$(BACKNAME$,1,I-1) ELSE 415
411 NEXT I
412 IF LEN(BACKNAME$)=0 THEN 5100
413 FOR I=LEN(BACKNAME$) TO 1 STEP -1 :: IF SEG$(BACKNAME$,I,1)=" " THEN BACKNAME$=SEG$(BACKNAME$,1,I-1) ELSE 415
414 NEXT I
415 IF LEN(BACKNAME$)=0 THEN 5100
416 IF POS(BACKNAME$," ",1)<>0 THEN 5100
417 IF POS(BACKNAME$,"..",1)<>0 THEN 5100
418 IF LOAD=1 THEN 450
420 LOAD=1 :: U$="DSK..WIN..RESTOR/OBC"
430 FOR I=1 TO LEN(U$) :: CALL LOAD(-24576+I,ASC(SEG$(U$,I,1))) :: NEXT I :: CALL LOAD(-24576,LEN(U$)) :: CALL LINK("LOADER")
450 IF DKTDRV>1 AND FLOPCNT=1 THEN 470
465 DISPLAY AT(21,1) BEEP :"INSERT DISKETTE NUMBER";FLOPCNT:"IN DRIVE #";DKTDRV;" AND PRESS PROC"
466 DISPLAY AT(23,1):"PRESS  REDO TO RESTART":"       BACK TO ABORT"
467 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 467
468 IF CODE=12 THEN 470 ELSE IF CODE=6 THEN 95 ELSE IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 467
470 FOR I=0 TO LEN(DIR$)-1 :: CALL LOAD(ADDR+I,ASC(SEG$(DIR$,I+1,1))) :: NEXT I :: CALL LOAD(ADDR+40,LEN(DIR$),0)
473 BACK$="DSK"&STR$(DKTDRV)&".."&BACKNAME$
475 FOR I=0 TO (LEN(BACK$)-1) :: CALL LOAD(ADDR+42+I,ASC(SEG$(BACK$,I+1,1))) :: NEXT I :: CALL LOAD(ADDR+57,LEN(BACK$))
480 CALL LINK("EXECU1")
490 REM NOW TEST IF SUCCESSFUL RETURN
500 CALL PEEK(ADDR+41,STAT)
510 REM STAT CAN BE  1 FOR DIR FOUND  5 FOR HARDWARE ERROR  2 FOR BAD PATHNAME 8-OPEN ERROR ON DISKETTE
520 ON STAT GOTO 523,5200,523,523,5500,523,523,5600
523 ST=3 :: FI=22 :: GOSUB 3000
525 RESTORE 40 :: READ A$,B$,C$ :: DISPLAY AT(4,1):A$:DIRNAME$:DIRNAME2$
526 DISPLAY AT(8,1):B$;STR$(DKTDRV):C$;BACKNAME$
530 IF OPT=2 THEN GOSUB 10000 :: PRINT #1:A$; TAB (45);DATE$; TAB (60);TIME$:DIRNAME$:DIRNAME2$:B$;DKTDRV:C$;BACKNAME$
540 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 550
542 IF CODE=6 THEN 90
544 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU"
550 CALL LINK("EXECU2") :: CALL PEEK(ADDR+40,CODE,STAT)
557 REM ERROR=13-FILE IS WRITE PROTECT WILL NOT RESTORE
558 REM RETURN CODES 0-FILE RESTORED,1-DIRECTORY FOUND,2-PATHNAME ERROR,3-END,4-NU,5-DISK ERROR,6-FLOPPY ERROR,7-INSERT NEW FILE
559 REM 8-CREATE DIR ERROR,9-BAD DIR RESTORE NAME,10-HARD DISK DSR ERROR,11-BAD FLOPPY OPEN ERROR:RELOAD IT,12-BAD FLOPPY FORMAT ERROR
560 ON (STAT+1) GOTO 570,5500,5200,800,5500,5500,5600,610,8000,9000,9500,7000,9100,9200
570 SUMFIL=SUMFIL+1 :: FI$="" :: D$="RESTORED: "
575 FOR I=0 TO 39 :: CALL PEEK(-22718+I,STAT) :: IF STAT=32 THEN 580 ELSE FI$=FI$&CHR$(STAT)
577 NEXT I
580 DISPLAY AT(11,1)$:SEG$(FI$,1,28):SEG$(FI$,29,12)
590 IF OPT=2 THEN PRINT #1:D$;FI$
595 GOTO 540
610 FLOPCNT=FLOPCNT+1 :: DISPLAY AT(14,1) BEEP :"DISKETTE NUMBER ";STR$(FLOPCNT-1);" RESTORED"
612 DISPLAY AT(15,1) BEEP :"INSERT DISKETTE NUMBER:";FLOPCNT:"AND PRESS PROCEED"
620 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 620
622 IF CODE=12 THEN 630
624 IF CODE=6 THEN 95
626 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 620
630 ST=14 :: FI=16 :: GOSUB 3000 :: GOTO 540
800 DISPLAY AT(18,1) BEEP :"COMMAND COMPLETE":SUMFIL;" FILES RESTORED":"REINSERT UTILITY DISKETTE"
820 IF OPT=2 THEN PRINT #1 :: PRINT #1:"COMMAND COMPLETE":SUMFIL;" FILES RESTORED" :: CLOSE #1 :: OPN=0
900 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 900
910 IF CODE=6 THEN 90
920 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 900
3000 FOR I=ST TO FI :: DISPLAY AT(I,1) SIZE(28) :: NEXT I :: RETURN
5100 DISPLAY AT(22,1) SIZE(28):"INVALID BACKUP NAME" :: GOTO 5210
5200 DISPLAY AT(22,1) SIZE(28):"PATHNAME ERROR"
5210 DISPLAY AT(23,1) BEEP :"PRESS  REDO TO RESTART":"       BACK TO ABORT" :: GOTO 900
5500 DISPLAY AT(22,1) SIZE(28):"DISK ERROR" :: GOTO 5210
5600 DISPLAY AT(21,1) SIZE(28):"DISKETTE DEVICE ERROR" :: GOTO 9510
6000 DISPLAY AT(22,1) SIZE(28):"INVALID LISTING DEVICE" :: ON ERROR STOP :: RETURN 5210
7000 DISPLAY AT(14,1) SIZE(28) BEEP :"DISKETTE OPEN ERROR" :: CALL LOAD(ADDR+41,7) :: GOTO 612
8000 DISPLAY AT(21,1) SIZE(28):"CREATE DIRECTORY ERROR" :: ON CODE GOTO 8010,5200,8020,8030,8030
8010 FI$="DIRECTORY FULL" :: GOTO 8050
8020 FI$="DISK FULL" :: GOTO 8050
8030 FI$="DISK ERROR" :: GOTO 8050
8050 DISPLAY AT(22,1) SIZE(28):FI$ :: GOTO 900
9000 DISPLAY AT(21,1) SIZE(28):"RESTORE PATHNAME DOES NOT" :: FI$="COMPARE WITH ENTERED NAME" :: GOTO 8050
9100 DISPLAY AT(21,1) SIZE(28):"FORMAT OF DISKETTE" :: FI$="INCORRECT FOR RESTORE" :: GOTO 8050
9200 D$="NOT RESTORED: " :: FI$="" :: GOTO 575
9500 DISPLAY AT(21,1) SIZE(28):"DISK DEVICE ERROR"
9510 ON (CODE+1) GOTO 9511,9512,9513,9512,9514,9515,9516,9517
9511 FI$="DEVICE NOT FOUND" :: GOTO 8050
9512 FI$="NOT APPLICABLE" :: GOTO 8050
9513 FI$="BAD OPEN OPTIONS" :: GOTO 8050
9514 FI$="DISK FULL" :: GOTO 8050
9515 FI$="READ EOF ERROR" :: GOTO 8050
9516 FI$="DEVICE ERROR" :: GOTO 8050
9517 FI$="FILE DOES NOT EXIST" :: GOTO 8050
10000 ON ERROR 10100 :: OPEN #2:"TIME",FIXED,INTERNAL :: INPUT #2:SEC$,MIN$,HR$,DAY$,MON$,YR$ :: CLOSE #2 :: TIME$=HR$&":"&MIN$&":"&SEC$
10010 DATE$=MON$&"/"&DAY$&"/"&YR$ :: RETURN
10100 RETURN 10010

XB Backup:

10 CALL CLEAR :: GOTO 86 :: S,F :: CALL SCREEN :: FOR TO :: CALL COLOR :: NEXT :: CALL CHAR :: DISPLAT AT :: ACCEPT AT
45 :: ADDR,SUM,SUMDIR,SUMFIL,DKTDRV,FLOPCNT,OPT,OPN,I,LOAD,STAT,CODE,ST,FI=S :: CALL LINK :: CALL LOAD :: CALL PEEK :: CALL KEY
46 SUBDIR$=BACK$&BACKNAME$&DIRNAME$&DIRNAME2$&CHOICE$&LISTDEVICE$&DIR$&U$&FI$&DATE$&TIME$&SEC$&MIN$&HR$&DAY$&MON$&YR$&A$&B$&C$&D$ :: !@P-
86 CALL CLEAR :: S=5 :: F=16 :: CALL SCREEN(S) :: FOR I=1 TO 8 :: CALL COLOR(I,F,1) :: NEXT I :: CALL CHAR(95,"0000FFFFFFFF")
88 DATA BACKING UP DIRECTORY:,TO DISKETTE DRIVE NUMBER:,"BACKUP NAME: ","BACKED UP: "
89 SUBDIR$="" :: DKTDRV=1 :: DIRNAME$="WDS" :: DIRNAME2$="" :: OPT=1 :: LISTDEVICE$="PIO"
90 ADDR=-22890
95 SUM=0 :: SUMDIR=0 :: SUMFIL=0 :: BACKNAME$="-------" :: FLOPCNT=1
150 DISPLAY AT(1,1) ERASE ALL BEEP :"BACKUP DIRECTORY":RPT$("_",28)
170 DISPLAY AT(4,1):"ENTER DIRECTORY'S PATHNAME:":DIRNAME$:DIRNAME2$
175 ON WARNING NEXT :: DISPLAY AT(8,1):"TO DISKETTE DRIVE #(1-3):";DKTDRV
176 DISPLAY AT(9,1):"BACKUP NAME: ";BACKNAME$
177 DISPLAY AT(11,1):"IS ABOVE CORRECT ?":"(Y/N/A-ABORT) :Y"
178 DISPLAY AT(14,1):"WHERE DO YOU WANT LISTING?":"1-SCREEN":"2-OTHER":"ENTER OPTION :";OPT
180 ACCEPT AT(5,4) SIZE(-25):DIRNAME$
190 ACCEPT AT(6,1) SIZE(-15):DIRNAME2$
200 DIRNAME$="WDS"&DIRNAME$
220 ACCEPT AT(8,27) VALIDATE ("123") SIZE(-1):DKTDRV :: ACCEPT AT(9,14) SIZE(-7):BACKNAME$ :: ACCEPT AT(12,16) SIZE(-1) VALIDATE ("YNA"):CHOICE$
250 IF CHOICE$="A" THEN RUN "DSK..WIN..&DMMENU" ELSE IF CHOICE$="N" THEN 180 ELSE IF CHOICE$="Y" THEN 350 : GOTO 220
350 ACCEPT SIZE(-1) AT(17,16) VALIDATE ("12"):OPT :: IF OPT=1 THEN 400 ELSE IF OPT<>2 THEN 350
370 DISPLAY AT(18,1):"ENTER LIST DEVICE:":LISTDEVICE$ :: ACCEPT AT(19,1) SIZE(-28):LISTDEVICE$ :: IF OPN=1 THEN CLOSE #1
390 ON ERROR 6000 :: OPEN #1:LISTDEVICE$,OUTPUT :: OPN=1 :: ON ERROR STOP
400 DIR$=DIRNAME$&DIRNAME2$
405 IF LEN(DIR$)>40 THEN 5200
410 FOR I=7 TO 1 STEP -1 :: IF SEG$(BACKNAME$,I,1)="-" THEN BACKNAME$=SEG$(BACKNAME$,1,I-1) ELSE 415
411 NEXT I
412 IF LEN(BACKNAME$)=0 THEN 5100
413 FOR I=LEN(BACKNAME$) TO 1 STEP -1 :: IF SEG$(BACKNAME$,I,1)=" " THEN BACKNAME$=SEG$(BACKNAME$,1,I-1) ELSE 415
414 NEXT I
415 IF LEN(BACKNAME$)=0 THEN 5100
416 IF POS(BACKNAME$," ",1)<>0 THEN 5100
417 IF POS(BACKNAME$,"..",1)<>0 THEN 5100
418 IF LOAD=1 THEN 450
420 LOAD=1 :: U$="DSK..WIN..BACKUP/OBC"
430 FOR I=1 TO LEN(U$) :: CALL LOAD(-24576+I,ASC(SEG$(U$,I,1))) :: NEXT I :: CALL LOAD(-24576,LEN(U$)) :: CALL LINK("LOADER")
450 IF DKTDRV>1 AND FLOPCNT=1 THEN 470
465 DISPLAY AT(21,1) BEEP :"INSERT DISKETTE NUMBER";FLOPCNT:"IN DRIVE #";DKTDRV;" AND PRESS PROC"
466 DISPLAY AT(23,1):"PRESS  REDO TO RESTART":"       BACK TO ABORT"
467 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 467
468 IF CODE=12 THEN 470 ELSE IF CODE=6 THEN 95 ELSE IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 467
470 FOR I=0 TO LEN(DIR$)-1 :: CALL LOAD(ADDR+I,ASC(SEG$(DIR$,I+1,1))) :: NEXT I :: CALL LOAD(ADDR+40,LEN(DIR$),0)
473 BACK$="DSK"&STR$(DKTDRV)&".."&BACKNAME$
475 FOR I=0 TO (LEN(BACK$)-1) :: CALL LOAD(ADDR+42+I,ASC(SEG$(BACK$,I+1,1))) :: NEXT I :: CALL LOAD(ADDR+57,LEN(BACK$))
480 CALL LINK("EXECU1")
490 REM NOW TEST IF SUCCESSFUL RETURN
500 CALL PEEK(ADDR+41,STAT)
510 REM STAT CAN BE  1 FOR DIR FOUND  5 FOR HARDWARE ERROR  2 FOR BAD PATHNAME 8-OPEN ERROR ON DISKETTE
520 ON STAT GOTO 523,5200,523,523,5500,523,523,5600
523 ST=3 :: FI=22 :: GOSUB 3000
525 RESTORE 40 :: READ A$,B$,C$,D$ :: DISPLAY AT(4,1):A$:DIRNAME$:DIRNAME2$
526 DISPLAY AT(8,1):B$;DKTDRV:C$;BACKNAME$
530 IF OPT=2 THEN GOSUB 10000 :: PRINT #1:A$; TAB (45);DATE$; TAB (60);TIME$:DIRNAME$:DIRNAME2$:B$;DKTDRV:C$;BACKNAME$
540 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 550
542 IF CODE=6 THEN 90
544 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU"
550 CALL LINK("EXECU2") :: CALL PEEK(ADDR+41,STAT)
558 REM RETURN CODES 0-FILE BACKED UP,1-DIRECTORY FOUND,3-END,4-POP DIR,5-DISK ERROR,6-PUSH DIR,7-INSERT NEW FILE
559 REM FLOPPY ERRORS 8-BAD OPEN,9-BAD CLOSE,10-BAD WRITE
560 ON (STAT+1) GOTO 570,648,5500,800,652,5500,648,610,7000,5600,5600
570 SUMFIL=SUMFIL+1 :: FI$=DIR$&".."
575 FOR I=0 TO 9 :: CALL PEEK(ADDR+58+I,STAT) :: FI$=FI$&CHR$(STAT) :: NEXT I
580 DISPLAY AT(11,1)$:SEG$(FI$,1,28):SEG$(FI$,29,12)
590 IF OPT=2 THEN PRINT #1:D$;FI$
595 GOTO 540
610 FLOPCNT=FLOPCNT+1 :: DISPLAY AT(14,1) BEEP :"DISKETTE NUMBER";FLOPCNT-1;" IS FULL"
612 DISPLAY AT(15,1):"INSERT DISKETTE NUMBER:";FLOPCNT:"AND PRESS PROCEED"
620 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 620
622 IF CODE=12 THEN 630
624 IF CODE=6 THEN 95
626 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 620
630 ST=14 :: FI=16 :: GOSUB 3000 :: GOTO 540
648 DIR$=DIR$&".." :: FOR I=0 TO 9 :: CALL PEEK(ADDR+58+I,STAT) :: IF STAT=32 THEN 540 :: DIR$=DIR$&CHR$(STAT)
649 NEXT I
650 GOTO 540
652 I=1
654 S=POS(DIR$,"..",I) :: IF S=0 THEN 656 ELSE I=S+1 :: GOTO 654
656 IF I=1 THEN DIR$="" ELSE DIR$=SEG$(DIR$,1,I-2)
658 GOTO 540
800 DISPLAY AT(18,1) BEEP :"COMMAND COMPLETE":SUMFIL;" FILES BACKED UP":"REINSERT UTILITY DISKETTE"
820 IF OPT=2 THEN PRINT #1 :: PRINT #1:"COMMAND COMPLETE":SUMFIL;" FILES BACKED UP" :: CLOSE #1 :: OPN=0
900 CALL KEY(0,CODE,STAT) :: IF STAT=0 THEN 900
910 IF CODE=6 THEN 90
920 IF CODE=15 THEN RUN "DSK..WIN..&DMMENU" ELSE 900
3000 FOR I=ST TO FI :: DISPLAY AT(I,1) SIZE(28) :: NEXT I :: RETURN
5100 DISPLAY AT(22,1) SIZE(28):"INVALID BACKUP NAME" :: GOTO 5210
5200 DISPLAY AT(22,1) SIZE(28):"PATHNAME ERROR"
5210 DISPLAY AT(23,1) BEEP :"PRESS  REDO TO RESTART":"       BACK TO ABORT" :: GOTO 900
5500 DISPLAY AT(22,1) SIZE(28):"DISK ERROR" :: GOTO 5210
5600 DISPLAY AT(22,1) SIZE(28):"DISKETTE ERROR" :: GOTO 5210
6000 DISPLAY AT(22,1) SIZE(28):"INVALID LISTING DEVICE" :: ON ERROR STOP :: RETURN 5210
7000 DISPLAY AT(14,1) SIZE(28) BEEP :"DISKETTE OPEN ERROR" :: CALL LOAD(ADDR+41,7) :: GOTO 612
10000 ON ERROR 10100 :: OPEN #2:"TIME",FIXED,INTERNAL :: INPUT #2:SEC$,MIN$,HR$,DAY$,MON$,YR$ :: CLOSE #2 :: TIME$=HR$&":"&MIN$&":"&SEC$
10010 DATE$=MON$&"/"&DAY$&"/"&YR$ :: RETURN
10100 RETURN 10010

Backup Assembly as disassembled by TI Image Tool:

  AORG >A688
XA688     A    R0,@>ABD2(R3)                              A8C0 ABD2      : A688
          CI   R2,>0046                                   0282 0046      : A68C
          JGT  XA6AA                                      150C           : A690
          AI   R2,>FFF9                                   0222 FFF9      : A692
          AI   R2,>FFD0                                   0222 FFD0      : A696
          SLA  R3,4                                       0A43           : A69A
          JNC  XA6A6                                      1704           : A69C
          ABS  @>20C8                                     0760 20C8      : A69E
          JEQ  XA6A6                                      1301           : A6A2
          BLWP *R4                                        0414           : A6A4
XA6A6     A    R2,R3                                      A0C2           : A6A6
          JMP  XA67A                                      10E8           : A6A8
XA6AA     DEC  R5                                         0605           : A6AA
          ABS  @>20C8                                     0760 20C8      : A6AC
          JEQ  XA6B6                                      1302           : A6B0
          BLWP @>A444                                     0420 A444      : A6B2
XA6B6     CLR  R3                                         04C3           : A6B6
          RTWP                                            0380           : A6B8
          MOVB *R5+,R2                                    D0B5           : A6BA
          SRL  R2,8                                       0982           : A6BC
          CI   R2,>0009                                   0282 0009      : A6BE
          JNE  XA6C8                                      1602           : A6C2
          LI   R2,>0020                                   0202 0020      : A6C4
XA6C8     CI   R2,>0020                                   0282 0020      : A6C8
          JLT  XA6AA                                      11EE           : A6CC
          CI   R2,>005F                                   0282 005F      : A6CE
          JH   XA6DC                                      1B04           : A6D2
          MOVB @>24D0(R2),R1                              D062 24D0      : A6D4
          SRL  R1,8                                       0981           : A6D8
          RT                                              045B           : A6DA
XA6DC     CLR  R1                                         04C1           : A6DC
          RT                                              045B           : A6DE
          BL   *R7                                        0697           : A6E0
          C    R1,R0                                      8001           : A6E2
          JNE  XA6E8                                      1601           : A6E4
          BL   *R10                                       069A           : A6E6
XA6E8     MOV  R2,R3                                      C0C2           : A6E8
          BL   *R7                                        0697           : A6EA
          C    R1,R0                                      8001           : A6EC
          JNE  XA6F2                                      1601           : A6EE
          BL   *R10                                       069A           : A6F0
XA6F2     SLA  R3,8                                       0A83           : A6F2
          SOC  R2,R3                                      E0C2           : A6F4
          RTWP                                            0380           : A6F6
          MOV  R11,R12                                    C30B           : A6F8
          BL   *R7                                        0697           : A6FA
          C    R1,R0                                      8001           : A6FC
          JEQ  XA704                                      1302           : A6FE
          DECT R5                                         0645           : A700
          CLR  R2                                         04C2           : A702
XA704     B    *R12                                       045C           : A704
          MOV  @>287E,R3                                  C0E0 287E      : A706
          ANDI R3,>00FF                                   0243 00FF      : A70A
          MOV  R3,@>3D3C                                  C803 3D3C      : A70E
          JEQ  XA71A                                      1303           : A712
          INC  @>3D24                                     05A0 3D24      : A714
          JMP  XA71E                                      1002           : A718
XA71A     CLR  @>3D24                                     04E0 3D24      : A71A
XA71E     MOV  @>2880,R3                                  C0E0 2880      : A71E
          RTWP                                            0380           : A722
          A    R2,*R7                                     A5C2           : A724
          A    *R4+,*R8                                   A634           : A726
          A    @>0000,*R11                                A6E0 0000      : A728
          DATA >0000
          DATA >0000
          SOCB R0,*R12+                                   FF00           : A730
          MOVB R9,*R0+                                    DC09           : A732
          DATA >0E18
          JOC  XA768                                      1818           : A736
          SRL  R10,4                                      094A           : A738
          SRC  R10,4                                      0B4A           : A73A
          DATA >0D4A
          DATA >0F4A
          DATA >0FCA
          JMP  XA664                                      1090           : A742
          JLE  XA666                                      1290           : A744
          JHE  XA668                                      1490           : A746
          JNE  XA66A                                      1690           : A748
          COC  *R2,R2                                     2092           : A74A
          COC  *R10+,R9                                   227A           : A74C
          CZC  *R10+,R1                                   247A           : A74E
          CZC  *R10+,R9                                   267A           : A750
          DATA >0000
          DATA >0000
          SZCB @>A7BC,R15                                 53E0 A7BC      : A756
          LWPI >83E0                                      02E0 83E0      : A75A
          SZCB R4,*R13                                    5744           : A75E
          SZC  R9,*R1                                     4449           : A760
          SZCB R0,R8                                      5200           : A762
          SZCB *R0+,R12                                   5330           : A764
          LDCR *R2+,4                                     3132           : A766
XA768     LDCR *R4+,12                                    3334           : A768
          COC  @>0607(R14),R0                             202E 0607      : A76A
          DATA >0108
          SRL  R10,0                                      090A           : A770
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0002
          DEC  @>FFFF                                     0620 FFFF      : A77A
          DATA >0000
          DATA >0000
          DEC  R9                                         0609           : A782
          A    *R6,*R10                                   A696           : A784
          A    R0,*R11                                    A6C0           : A786
          DATA >0000
          SRL  R7,8                                       0987           : A78A
          SETO R6                                         0706           : A78C
          LI   R2,>834A                                   0202 834A      : A78E
XA792     INC  R1                                         0581           : A792
          INC  R6                                         0586           : A794
          C    R6,R7                                      81C6           : A796
          JEQ  XA7AC                                      1309           : A798
          MOV  R1,@>A7A2                                  C801 A7A2      : A79A
          BLWP @>AABE                                     0420 AABE      : A79E
          JLT  XA7BE+2                                    110E           : A7A2
          MOVB R0,*R2+                                    DC80           : A7A4
XA7A6     CB   R0,@>A837                                  9800 A837      : A7A6
          JNE  XA792                                      16F3           : A7AA
XA7AC     MOV  R6,R6                                      C186           : A7AC
          JEQ  XA82C                                      133E           : A7AE
          CI   R6,>0008                                   0286 0008      : A7B0
          JGT  XA82C                                      153B           : A7B4
          CLR  @>83D0                                     04E0 83D0      : A7B6
          INC  @>8356                                     05A0 8356      : A7BA
XA7BE     A    R6,@>8356                                  A806 8356      : A7BE
          MOV  R6,@>8354                                  C806 8354      : A7C2
          CLR  R1                                         04C1           : A7C6
          LI   R12,>0F00                                  020C 0F00      : A7C8
XA7CC     SBZ  0                                          1E00           : A7CC
          AI   R12,>0100                                  022C 0100      : A7CE
          CLR  @>83D0                                     04E0 83D0      : A7D2
          CI   R12,>2000                                  028C 2000      : A7D6
          JEQ  XA82C                                      1328           : A7DA
          MOV  R12,@>83D0                                 C80C 83D0      : A7DC
          SBO  0                                          1D00           : A7E0
          LI   R2,>4000                                   0202 4000      : A7E2
          CB   *R2,@>A836                                 9812 A836      : A7E6
          JNE  XA7CC                                      16F0           : A7EA
          AI   R2,>0008                                   0222 0008      : A7EC
          JMP  XA7F8                                      1003           : A7F0
XA7F2     MOV  @>83D2,R2                                  C0A0 83D2      : A7F2
          SBO  0                                          1D00           : A7F6
XA7F8     MOV  *R2,R2                                     C092           : A7F8
          JEQ  XA7CC                                      13E8           : A7FA
          MOV  R2,@>83D2                                  C802 83D2      : A7FC
          INCT R2                                         05C2           : A800
          MOV  *R2,R9                                     C252           : A802
          INCT R2                                         05C2           : A804
          MOV  R6,R5                                      C146           : A806
          SWPB R5                                         06C5           : A808
          CB   R5,*R2                                     9485           : A80A
          JNE  XA7F2                                      16F2           : A80C
          SWPB R5                                         06C5           : A80E
          LI   R3,>834A                                   0203 834A      : A810
XA814     INC  R2                                         0582           : A814
          CB   *R3+,*R2                                   94B3           : A816
          JNE  XA7F2                                      16EC           : A818
          DEC  R5                                         0605           : A81A
          JNE  XA814                                      16FB           : A81C
          INC  R1                                         0581           : A81E
          BL   *R9                                        0699           : A820
          JMP  XA7F2                                      10E7           : A822
          SBZ  0                                          1E00           : A824
          LWPI >A81E                                      02E0 A81E      : A826
          RTWP                                            0380           : A82A
XA82C     LWPI >A81E                                      02E0 A81E      : A82C
          SOCB @>A7D8,R15                                 F3E0 A7D8      : A830
          RTWP                                            0380           : A834
          A    @>2048(R14),@>AA34(R8)                     AA2E 2048 AA34 : A836
          MOV  R0,R0                                      C000           : A83C
          COC  @>0000,R8                                  2220 0000      : A83E
          COC  @>A930(R8),R0                              2028 A930      : A842
          COC  @>A91C(R8),R0                              2028 A91C      : A846
          COC  R8,R0                                      2008           : A84A
          A    *R6,@>2048(R1)                             A856 2048      : A84C
          A    R6,@>2068(R3)                              A8C6 2068      : A850
XA854     A    *R6,@>04C3(R3)                             A8D6 04C3      : A854
          CLR  @>A840                                     04E0 A840      : A858
          ABS  @>2088                                     0760 2088      : A85C
          JEQ  XA866                                      1302           : A860
          SETO @>A840                                     0720 A840      : A862
XA866     BL   @>A98C                                     06A0 A98C      : A866
          CLR  @>A840                                     04E0 A840      : A86A
          MOV  R3,R3                                      C0C3           : A86E
          JEQ  XA878                                      1303           : A870
          CLR  @>2088                                     04E0 2088      : A872
          JMP  XA854+2                                    10EF           : A876
XA878     LI   R1,>1005                                   0201 1005      : A878
          CLR  R0                                         04C0           : A87C
          ABS  @>2088                                     0760 2088      : A87E
          JEQ  XA888                                      1302           : A882
          LI   R1,>1305                                   0201 1305      : A884
XA888     MOV  R1,@>A890                                  C801 A890      : A888
          BLWP @>AABE                                     0420 AABE      : A88C
          JMP  XA89A+2                                    1005           : A890
          MOVB R0,@>A8A9                                  D800 A8A9      : A892
          MOVB R4,R1                                      D044           : A896
          SRL  R1,8                                       0981           : A898
XA89A     CI   R1,>0004                                   0281 0004      : A89A
          JEQ  XA8C4                                      1312           : A89E
          BLWP @>AACA                                     0420 AACA      : A8A0
          JMP  XA7A6                                      1080           : A8A4
          COC  @>000A,R9                                  2260 000A      : A8A6
          DATA >0002
          SRA  R0,0                                       0800           : A8AC
          BLWP R0                                         0400           : A8AE
          LIMI >0200                                      0300 0200      : A8B0
          SZC  R0,R0                                      4000           : A8B4
          DATA >0008
          DATA >00FF
          DATA >000A
          DATA >000B
          DATA >00A0
          LIMI >0000                                      0300 0000      : A8C0
XA8C4     MOV  R11,@>A756                                 C80B A756      : A8C4
          CLR  @>A72E                                     04E0 A72E      : A8C8
          BLWP @>A8DA                                     0420 A8DA      : A8CC
          MOV  @>A756,R11                                 C2E0 A756      : A8D0
          LIMI >0002                                      0300 0002      : A8D4
          RT                                              045B           : A8D8
          A    *R2+,*R12                                  A732           : A8DA
          A    *R14,@>0203(R3)                            A8DE 0203      : A8DC
          A    *R6,*R10                                   A696           : A8E0
          MOVB @>A13F,@>A6BF                              D820 A13F A6BF : A8E2
          CLR  @>A754                                     04E0 A754      : A8E8
          CLR  @>A72C                                     04E0 A72C      : A8EC
          MOV  @>A730,@>A2CC                              C820 A730 A2CC : A8F0
          MOVB @>A6BE,R0                                  D020 A6BE      : A8F6
          SRL  R0,8                                       0980           : A8FA
          MOV  @>A2E0,R1                                  C060 A2E0      : A8FC
          C    *R3+,@>A75E                                8833 A75E      : A900
          JEQ  XA90A                                      1302           : A904
XA906     B    @>AA22                                     0460 AA22      : A906
XA90A     CB   *R3+,@>A764                                9833 A764      : A90A
          JNE  XA906                                      16FB           : A90E
          MOVB *R3+,R8                                    D233           : A910
          AI   R0,>FFFC                                   0220 FFFC      : A912
          CB   R8,@>A76B                                  9808 A76B      : A916
          JEQ  XA964                                      1324           : A91A
          CLR  R9                                         04C9           : A91C
          CB   R8,@>A766                                  9808 A766      : A91E
          JEQ  XA93C                                      130C           : A922
          INC  R9                                         0589           : A924
          CB   R8,@>A767                                  9808 A767      : A926
          JEQ  XA93C                                      1308           : A92A
          INC  R9                                         0589           : A92C
          CB   R8,@>A768                                  9808 A768      : A92E
          JEQ  XA93C                                      1304           : A932
          INC  R9                                         0589           : A934
          CB   R8,@>A769                                  9808 A769      : A936
          JNE  XA906                                      16E5           : A93A
XA93C     MOV  R0,R0                                      C000           : A93C
          JNE  XA946                                      1603           : A93E
          SETO @>A72C                                     0720 A72C      : A940
          JMP  XA94E                                      1004           : A944
XA946     CB   *R3+,@>A76B                                9833 A76B      : A946
          JNE  XA906                                      16DD           : A94A
          DEC  R0                                         0600           : A94C
XA94E     MOV  R9,@>A2CC                                  C809 A2CC      : A94E
          CLR  @>A29E                                     04E0 A29E      : A952
          MOV  @>A2E0,@>A2A6                              C820 A2E0 A2A6 : A956
          BLWP @>A09E                                     0420 A09E      : A95C
          B    @>AA12                                     0460 AA12      : A960
XA964     LI   R2,>A68C                                   0202 A68C      : A964
XA968     MOVB @>A76A,*R2+                                DCA0 A76A      : A968
          CI   R2,>A696                                   0282 A696      : A96C
          JNE  XA968                                      16FB           : A970
          LI   R2,>A68C                                   0202 A68C      : A972
          MOV  R0,R0                                      C000           : A976
          JEQ  XA97E                                      1302           : A978
          B    @>A986                                     0460 A986      : A97A
XA97E     SETO @>A72C                                     0720 A72C      : A97E
          B    @>A9A0                                     0460 A9A0      : A982
          DEC  R0                                         0600           : A986
          MOVB *R3+,R5                                    D173           : A988
          CB   R5,@>A76A                                  9805 A76A      : A98A
          JEQ  XAA22                                      1349           : A98E
          CB   R5,@>A76B                                  9805 A76B      : A990
          JNE  XAA2A                                      164A           : A994
          CI   R2,>A68C                                   0282 A68C      : A996
          JNE  XA9A0                                      1602           : A99A
          B    @>AA22                                     0460 AA22      : A99C
XA9A0     MOVB @>A2CC,R2                                  D0A0 A2CC      : A9A0
          JEQ  XA9E2                                      131E           : A9A4
          CLR  @>A2CC                                     04E0 A2CC      : A9A6
          MOV  @>A2E0,R1                                  C060 A2E0      : A9AA
XA9AE     CLR  @>A29E                                     04E0 A29E      : A9AE
          MOV  R1,@>A2A6                                  C801 A2A6      : A9B2
          BLWP @>A09E                                     0420 A09E      : A9B6
          MOV  R1,R5                                      C141           : A9BA
          AI   R5,>0004                                   0225 0004      : A9BC
          LI   R7,>A68C                                   0207 A68C      : A9C0
XA9C4     C    *R7+,*R5+                                  8D77           : A9C4
          JNE  XA9D0                                      1604           : A9C6
          CI   R7,>A696                                   0287 A696      : A9C8
          JEQ  XAA12                                      1322           : A9CC
          JMP  XA9C4                                      10FA           : A9CE
XA9D0     MOV  @>A2CC,R5                                  C160 A2CC      : A9D0
          INC  R5                                         0585           : A9D4
          MOV  R5,@>A2CC                                  C805 A2CC      : A9D6
          CI   R5,>0004                                   0285 0004      : A9DA
          JNE  XA9AE                                      16E7           : A9DE
          JMP  XAA22                                      1020           : A9E0
XA9E2     MOV  @>A2E0,R1                                  C060 A2E0      : A9E2
          MOV  R1,R8                                      C201           : A9E6
          AI   R8,>0020                                   0228 0020      : A9E8
          MOV  R1,R9                                      C241           : A9EC
          AI   R9,>001A                                   0229 001A      : A9EE
          MOV  *R9,R9                                     C259           : A9F2
          ANDI R9,>00FF                                   0249 00FF      : A9F4
          BL   @>A1BC                                     06A0 A1BC      : A9F8
          JNE  XAA22                                      1612           : A9FC
          MOV  @>A29E,@>A754                              C820 A29E A754 : A9FE
          MOV  @>A2E2,R1                                  C060 A2E2      : AA04
          MOV  @>A2E0,@>A2E2                              C820 A2E0 A2E2 : AA08
          MOV  R1,@>A2E0                                  C801 A2E0      : AA0E
XAA12     MOV  @>A72C,@>A72C                              C820 A72C A72C : AA12
          JNE  XAA48                                      1617           : AA18
          MOV  R0,R0                                      C000           : AA1A
          JEQ  XAA22                                      1302           : AA1C
          B    @>A964                                     0460 A964      : AA1E
XAA22     MOVB @>A8B2,@>A6BF                              D820 A8B2 A6BF : AA22
          RTWP                                            0380           : AA28
XAA2A     CI   R2,>A696                                   0282 A696      : AA2A
          JEQ  XAA22                                      13F9           : AA2E
          MOVB R5,*R2+                                    DC85           : AA30
          B    @>A976                                     0460 A976      : AA32
          MOV  R1,R10                                     C281           : AA36
          AI   R10,>0104                                  022A 0104      : AA38
XAA3C     CLR  *R1+                                       04F1           : AA3C
          C    R1,R10                                     8281           : AA3E
          JNE  XAA3C                                      16FD           : AA40
          AI   R1,>FEFC                                   0221 FEFC      : AA42
          RT                                              045B           : AA46
XAA48     CLR  @>A724                                     04E0 A724      : AA48
          LI   R3,>A696                                   0203 A696      : AA4C
          MOVB @>A6BE,R4                                  D120 A6BE      : AA50
          SRL  R4,8                                       0984           : AA54
          A    R4,R3                                      A0C4           : AA56
XAA58     CI   R3,>A6BE                                   0283 A6BE      : AA58
          JEQ  XAA64                                      1303           : AA5C
          MOVB @>A76A,*R3+                                DCE0 A76A      : AA5E
          JMP  XAA58                                      10FA           : AA62
XAA64     LI   R1,>0030                                   0201 0030      : AA64
          MOV  R1,@>A772                                  C801 A772      : AA68
          CLR  @>A774                                     04E0 A774      : AA6C
          CLR  @>A776                                     04E0 A776      : AA70
          LI   R0,>0600                                   0200 0600      : AA74
          LI   R1,>A778                                   0201 A778      : AA78
          LI   R2,>000A                                   0202 000A      : AA7C
          MOVB @>A6CF,R3                                  D0E0 A6CF      : AA80
          AI   R3,>0300                                   0223 0300      : AA84
          MOVB R3,@>A781                                  D803 A781      : AA88
          BLWP @>A4F0                                     0420 A4F0      : AA8C
          LI   R1,>A6C0                                   0201 A6C0      : AA90
          MOVB @>A6CF,R2                                  D0A0 A6CF      : AA94
          SRL  R2,8                                       0982           : AA98
          A    R2,R1                                      A042           : AA9A
          MOVB @>A765,*R1+                                DC60 A765      : AA9C
          MOVB @>A765,*R1+                                DC60 A765      : AAA0
          MOVB @>A765,*R1+                                DC60 A765      : AAA4
          AI   R2,>0003                                   0222 0003      : AAA8
          LI   R0,>060A                                   0200 060A      : AAAC
          LI   R1,>A6C0                                   0201 A6C0      : AAB0
          BLWP @>A4F0                                     0420 A4F0      : AAB4
          MOV  @>A782,@>8356                              C820 A782 8356 : AAB8
          BLWP @>A4FC                                     0420 A4FC      : AABE
          DATA >0008
          JNE  XAACE                                      1604           : AAC4
          MOVB @>A76F,@>A6BF                              D820 A76F A6BF : AAC6
          JMP  XAB22                                      102A           : AACC
XAACE     LI   R0,>0620                                   0200 0620      : AACE
          LI   R1,>A696                                   0201 A696      : AAD2
          LI   R2,>0028                                   0202 0028      : AAD6
          BLWP @>A4F0                                     0420 A4F0      : AADA
          LI   R0,>0648                                   0200 0648      : AADE
          MOV  @>A2E0,R1                                  C060 A2E0      : AAE2
          AI   R1,>0016                                   0221 0016      : AAE6
          LI   R2,>0004                                   0202 0004      : AAEA
          BLWP @>A4F0                                     0420 A4F0      : AAEE
          BL   @>AB24                                     06A0 AB24      : AAF2
          MOV  R0,R3                                      C0C0           : AAF6
          MOV  R1,R4                                      C101           : AAF8
          LI   R0,>064C                                   0200 064C      : AAFA
          LI   R1,>A738                                   0201 A738      : AAFE
          LI   R2,>0004                                   0202 0004      : AB02
          BLWP @>A4F0                                     0420 A4F0      : AB06
          LI   R8,>A6DC                                   0208 A6DC      : AB0A
          MOVB @>A13E,@>A6BF                              D820 A13E A6BF : AB0E
          MOV  @>A29E,*R8+                                CE20 A29E      : AB14
          CLR  *R8+                                       04F8           : AB18
          INCT @>A724                                     05E0 A724      : AB1A
          INCT @>A724                                     05E0 A724      : AB1E
XAB22     RTWP                                            0380           : AB22
          MOV  R11,@>ABBA                                 C80B ABBA      : AB24
          MOV  @>A000,R12                                 C320 A000      : AB28
          SBO  0                                          1D00           : AB2C
          SBO  1                                          1D01           : AB2E
          CLR  R0                                         04C0           : AB30
          CLR  R1                                         04C1           : AB32
          CLR  R2                                         04C2           : AB34
XAB36     LI   R3,>A740                                   0203 A740      : AB36
          LI   R4,>5FF2                                   0204 5FF2      : AB3A
          LI   R5,>0004                                   0205 0004      : AB3E
          MOV  *R4,*R3                                    C4D4           : AB42
XAB44     SBO  3                                          1D03           : AB44
          MOVB *R4,*R3+                                   DCD4           : AB46
          SBZ  3                                          1E03           : AB48
          MOVB *R4,*R3+                                   DCD4           : AB4A
          INCT R4                                         05C4           : AB4C
          DEC  R5                                         0605           : AB4E
          JNE  XAB44                                      16F9           : AB50
          SBO  3                                          1D03           : AB52
          MOV  *R4+,*R3                                   C4F4           : AB54
          SWPB *R3                                        06D3           : AB56
          SBZ  3                                          1E03           : AB58
          MOVB *R4,*R3                                    D4D4           : AB5A
          LI   R3,>A740                                   0203 A740      : AB5C
XAB60     CB   *R3+,@>A730                                9833 A730      : AB60
          JEQ  XABB2                                      1326           : AB64
          CI   R3,>A74A                                   0283 A74A      : AB66
          JNE  XAB60                                      16FA           : AB6A
          MOV  R11,R3                                     C0CB           : AB6C
          BL   @>ABBC                                     06A0 ABBC      : AB6E
          SLA  R3,5                                       0A53           : AB72
          MOV  R3,R0                                      C003           : AB74
          MOV  R10,R3                                     C0CA           : AB76
          BL   @>ABBC                                     06A0 ABBC      : AB78
          A    R3,R0                                      A003           : AB7C
          MOV  @>5FEE,R3                                  C0E0 5FEE      : AB7E
          BL   @>ABBC                                     06A0 ABBC      : AB82
          SLA  R3,9                                       0A93           : AB86
          A    R3,R0                                      A003           : AB88
          MOV  R9,R3                                      C0C9           : AB8A
          BL   @>ABBC                                     06A0 ABBC      : AB8C
          SLA  R3,11                                      0AB3           : AB90
          MOV  R3,R1                                      C043           : AB92
          MOV  R8,R3                                      C0C8           : AB94
          BL   @>ABBC                                     06A0 ABBC      : AB96
          SLA  R3,5                                       0A53           : AB9A
          A    R3,R1                                      A043           : AB9C
          MOV  R7,R3                                      C0C7           : AB9E
          BL   @>ABBC                                     06A0 ABBC      : ABA0
          SRL  R3,1                                       0913           : ABA4
          A    R3,R1                                      A043           : ABA6
XABA8     SBZ  1                                          1E01           : ABA8
          SBZ  0                                          1E00           : ABAA
          MOV  @>ABBA,R11                                 C2E0 ABBA      : ABAC
          RT                                              045B           : ABB0
XABB2     MOV  R2,R2                                      C082           : ABB2
          JNE  XABA8                                      16F9           : ABB4
          SETO R2                                         0702           : ABB6
          JMP  XAB36                                      10BE           : ABB8
          DATA >0000
          MOV  R3,R4                                      C103           : ABBC
          SRL  R4,8                                       0984           : ABBE
          ANDI R4,>000F                                   0244 000F      : ABC0
          LI   R5,>000A                                   0205 000A      : ABC4
          MPY  R4,R5                                      3944           : ABC8
          ANDI R3,>000F                                   0243 000F      : ABCA
          A    R6,R3                                      A0C6           : ABCE
          RT                                              045B           : ABD0
          LIMI >0000                                      0300 0000      : ABD2
          MOV  R11,@>A756                                 C80B A756      : ABD6
          BLWP @>ABE8                                     0420 ABE8      : ABDA
          MOV  @>A756,R11                                 C2E0 A756      : ABDE
          LIMI >0002                                      0300 0002      : ABE2
          RT                                              045B           : ABE6
          A    *R2+,*R12                                  A732           : ABE8
          A    @>D220(R12),@>A6BF(R15)                    ABEC D220 A6BF : ABEA
          JEQ  XAC26                                      131A           : ABF0
          CB   @>A13E,@>A6BF                              9820 A13E A6BF : ABF2
          JEQ  XAC0A                                      1308           : ABF8
          CB   @>A6BF,@>A76D                              9820 A6BF A76D : ABFA
          JNE  XAC06                                      1602           : AC00
          BLWP @>AFC6                                     0420 AFC6      : AC02
XAC06     B    @>ADB2                                     0460 ADB2      : AC06
XAC0A     MOV  @>A2E0,R1                                  C060 A2E0      : AC0A
          CLR  @>A726                                     04E0 A726      : AC0E
          MOV  @>001A(R1),@>A728                          C821 001A A728 : AC12
          MOV  R1,@>A2A6                                  C801 A2A6      : AC18
          MOV  @>001C(R1),@>A29E                          C821 001C A29E : AC1C
          BLWP @>A09E                                     0420 A09E      : AC22
XAC26     CLR  R5                                         04C5           : AC26
          MOVB @>A726,R5                                  D160 A726      : AC28
          CB   R5,@>A728                                  9805 A728      : AC2C
          JHE  XAC06                                      14EA           : AC30
          MOVB R5,R6                                      D185           : AC32
          AI   R6,>0100                                   0226 0100      : AC34
          MOVB R6,@>A726                                  D806 A726      : AC38
          SRL  R5,7                                       0975           : AC3C
          A    @>A2E0,R5                                  A160 A2E0      : AC3E
          MOV  @>0004(R5),@>A29E                          C825 0004 A29E : AC42
          MOV  @>A2E2,R10                                 C2A0 A2E2      : AC48
          MOV  R10,@>A2A6                                 C80A A2A6      : AC4C
          BLWP @>A09E                                     0420 A09E      : AC50
          LI   R8,>0028                                   0208 0028      : AC54
          MOV  @>A784,@>A79C                              C820 A784 A79C : AC58
          MOVB @>A6BE,R1                                  D060 A6BE      : AC5E
          SRL  R1,8                                       0981           : AC62
          MOV  R1,@>A774                                  C801 A774      : AC64
          S    R1,R8                                      6201           : AC68
          BLWP @>AED4                                     0420 AED4      : AC6A
          MOV  R10,R9                                     C24A           : AC6E
          AI   R9,>0003                                   0229 0003      : AC70
          MOV  R9,@>A79C                                  C809 A79C      : AC74
          CLR  @>A774                                     04E0 A774      : AC78
          INC  @>A774                                     05A0 A774      : AC7C
XAC80     CB   *R9+,@>A538                                9839 A538      : AC80
          JEQ  XAC92                                      1306           : AC84
          INC  @>A774                                     05A0 A774      : AC86
          C    @>A774,@>A8BC                              8820 A774 A8BC : AC8A
          JNE  XAC80                                      16F7           : AC90
XAC92     S    @>A774,R8                                  6220 A774      : AC92
          BLWP @>AED4                                     0420 AED4      : AC96
          MOV  R8,R8                                      C208           : AC9A
          JEQ  XACB6                                      130C           : AC9C
          LI   R1,>A538                                   0201 A538      : AC9E
          LI   R2,>0001                                   0202 0001      : ACA2
XACA6     MOV  R1,@>A79C                                  C801 A79C      : ACA6
          MOV  R2,@>A774                                  C802 A774      : ACAA
          BLWP @>AED4                                     0420 AED4      : ACAE
          DEC  R8                                         0608           : ACB2
          JNE  XACA6                                      16F8           : ACB4
XACB6     MOV  R10,R9                                     C24A           : ACB6
          AI   R9,>0018                                   0229 0018      : ACB8
          MOV  R9,@>A79C                                  C809 A79C      : ACBC
          MOV  @>A8B6,@>A774                              C820 A8B6 A774 : ACC0
          BLWP @>AED4                                     0420 AED4      : ACC6
          MOVB @>0010(R10),R7                             D1EA 0010      : ACCA
          COC  @>A8AC,R7                                  21E0 A8AC      : ACCE
          JNE  XACE6                                      1609           : ACD2
          LI   R3,>00FF                                   0203 00FF      : ACD4
          A    @>0016(R10),R3                             A0EA 0016      : ACD8
          SRL  R3,8                                       0983           : ACDC
          MOV  @>0016(R10),R5                             C16A 0016      : ACDE
          CLR  R6                                         04C6           : ACE2
          JMP  XAD1A                                      101A           : ACE4
XACE6     COC  @>A8AE,R7                                  21E0 A8AE      : ACE6
          JNE  XACF8                                      1606           : ACEA
          MOV  @>0016(R10),R3                             C0EA 0016      : ACEC
          MOVB @>0014(R10),R5                             D16A 0014      : ACF0
          SRL  R5,8                                       0985           : ACF4
          JMP  XAD14                                      100E           : ACF6
XACF8     MOVB @>0015(R10),R3                             D0EA 0015      : ACF8
          SRL  R3,8                                       0983           : ACFC
          INC  R3                                         0583           : ACFE
          MPY  @>0024(R10),R3                             38EA 0024      : AD00
          AI   R4,>00FF                                   0224 00FF      : AD04
          JNC  XAD0C                                      1701           : AD08
          INC  R3                                         0583           : AD0A
XAD0C     MOVB R4,R3                                      D0C4           : AD0C
          SWPB R3                                         06C3           : AD0E
          MOV  @>0024(R10),R5                             C16A 0024      : AD10
XAD14     MOVB @>0015(R10),R6                             D1AA 0015      : AD14
          SRL  R6,8                                       0986           : AD18
XAD1A     MOV  R3,@>A788                                  C803 A788      : AD1A
          LI   R8,>A738                                   0208 A738      : AD1E
          MOV  R8,@>A79C                                  C808 A79C      : AD22
          MOV  @>A8B6,@>A774                              C820 A8B6 A774 : AD26
          LI   R4,>0001                                   0204 0001      : AD2C
          MOVB @>0010(R10),R4                             D12A 0010      : AD30
          BLWP @>AED4                                     0420 AED4      : AD34
          MOV  @>A788,R8                                  C220 A788      : AD38
          JEQ  XAD96                                      132C           : AD3C
XAD3E     LI   R1,>A7A6                                   0201 A7A6      : AD3E
          MOV  R10,R3                                     C0CA           : AD42
          AI   R3,>00FE                                   0223 00FE      : AD44
          MOV  R10,R4                                     C10A           : AD48
          AI   R4,>0028                                   0224 0028      : AD4A
XAD4E     MOV  *R4+,R2                                    C0B4           : AD4E
XAD50     MOV  R2,@>A29E                                  C802 A29E      : AD50
          MOV  R1,@>A2A6                                  C801 A2A6      : AD54
          BLWP @>A09E                                     0420 A09E      : AD58
          MOV  @>A13E,@>A774                              C820 A13E A774 : AD5C
          LI   R5,>A7AA                                   0205 A7AA      : AD62
          MOV  R5,@>A79C                                  C805 A79C      : AD66
          BLWP @>AED4                                     0420 AED4      : AD6A
          DEC  @>A788                                     0620 A788      : AD6E
          JEQ  XAD96                                      1311           : AD72
          C    R2,*R4                                     8502           : AD74
          JEQ  XAD7C                                      1302           : AD76
          INC  R2                                         0582           : AD78
          JMP  XAD50                                      10EA           : AD7A
XAD7C     C    R4,R3                                      80C4           : AD7C
          JEQ  XAD84                                      1302           : AD7E
          INCT R4                                         05C4           : AD80
          JMP  XAD4E                                      10E5           : AD82
XAD84     MOV  @>A2E2,@>A2A6                              C820 A2E2 A2A6 : AD84
          MOV  @>0022(R10),@>A29E                         C82A 0022 A29E : AD8A
          BLWP @>A09E                                     0420 A09E      : AD90
          JMP  XAD3E                                      10D4           : AD94
XAD96     MOVB @>A13F,@>A6BF                              D820 A13F A6BF : AD96
          AI   R10,>0004                                  022A 0004      : AD9C
          LI   R9,>000A                                   0209 000A      : ADA0
          LI   R8,>A6D0                                   0208 A6D0      : ADA4
XADA8     MOVB *R10+,*R8+                                 DE3A           : ADA8
          CI   R8,>A6DA                                   0288 A6DA      : ADAA
          JNE  XADA8                                      16FC           : ADAE
          RTWP                                            0380           : ADB0
          MOV  @>A724,R8                                  C220 A724      : ADB2
          AI   R8,>A6DC                                   0228 A6DC      : ADB6
          DECT R8                                         0648           : ADBA
          MOV  *R8,R9                                     C258           : ADBC
          MOV  @>A2E0,R1                                  C060 A2E0      : ADBE
          MOV  R1,@>A2A6                                  C801 A2A6      : ADC2
          DECT R8                                         0648           : ADC6
          MOV  *R8+,@>A29E                                C838 A29E      : ADC8
          BLWP @>A09E                                     0420 A09E      : ADCC
          MOV  @>001A(R1),R10                             C2A1 001A      : ADD0
          ANDI R10,>00FF                                  024A 00FF      : ADD4
          C    *R8,R10                                    8298           : ADD8
          JHE  XAE72                                      144B           : ADDA
          MOV  *R8,R10                                    C298           : ADDC
          INC  *R8+                                       05B8           : ADDE
          SLA  R10,1                                      0A1A           : ADE0
          A    R1,R10                                     A281           : ADE2
          MOV  @>0020(R10),@>A29E                         C82A 0020 A29E : ADE4
          BLWP @>A09E                                     0420 A09E      : ADEA
          MOV  R1,R10                                     C281           : ADEE
          AI   R10,>0004                                  022A 0004      : ADF0
          LI   R5,>A6D0                                   0205 A6D0      : ADF4
XADF8     MOVB *R10+,*R5+                                 DD7A           : ADF8
          CI   R5,>A6DA                                   0285 A6DA      : ADFA
          JNE  XADF8                                      16FC           : ADFE
          LI   R9,>A696                                   0209 A696      : AE00
          MOVB @>A6BE,R7                                  D1E0 A6BE      : AE04
          SRL  R7,8                                       0987           : AE08
          A    R7,R9                                      A247           : AE0A
          AI   R10,>FFF6                                  022A FFF6      : AE0C
          MOVB @>A76B,*R9+                                DE60 A76B      : AE10
          INC  R7                                         0587           : AE14
          LI   R6,>000A                                   0206 000A      : AE16
XAE1A     MOVB *R10+,*R9+                                 DE7A           : AE1A
          INC  R7                                         0587           : AE1C
          CB   *R10,@>A538                                981A A538      : AE1E
          JEQ  XAE28                                      1302           : AE22
          DEC  R6                                         0606           : AE24
          JNE  XAE1A                                      16F9           : AE26
XAE28     SLA  R7,8                                       0A87           : AE28
          MOVB R7,@>A6BE                                  D807 A6BE      : AE2A
          MOV  @>A784,@>A79C                              C820 A784 A79C : AE2E
          LI   R7,>0028                                   0207 0028      : AE34
          MOV  R7,@>A774                                  C807 A774      : AE38
          BLWP @>AED4                                     0420 AED4      : AE3C
          MOV  R1,R10                                     C281           : AE40
          AI   R10,>0012                                  022A 0012      : AE42
          MOV  R10,@>A79C                                 C80A A79C      : AE46
          LI   R10,>000A                                  020A 000A      : AE4A
          MOV  R10,@>A774                                 C80A A774      : AE4E
          BLWP @>AED4                                     0420 AED4      : AE52
          LI   R0,>0011                                   0200 0011      : AE56
          LI   R7,>A732                                   0207 A732      : AE5A
          MOV  R7,@>A79C                                  C807 A79C      : AE5E
          LI   R10,>0006                                  020A 0006      : AE62
          MOV  R10,@>A774                                 C80A A774      : AE66
          BLWP @>AED4                                     0420 AED4      : AE6A
          B    @>AB0E                                     0460 AB0E      : AE6E
XAE72     MOV  @>A724,R8                                  C220 A724      : AE72
          AI   R8,>FFFC                                   0228 FFFC      : AE76
          MOV  R8,@>A724                                  C808 A724      : AE7A
          JEQ  XAEAE                                      1317           : AE7E
          MOVB @>A8AE,@>A6BF                              D820 A8AE A6BF : AE80
          MOVB @>A6BE,R2                                  D0A0 A6BE      : AE86
          SRL  R2,8                                       0982           : AE8A
          MOV  R2,R3                                      C0C2           : AE8C
          DEC  R3                                         0603           : AE8E
          AI   R2,>A695                                   0222 A695      : AE90
XAE94     DEC  R3                                         0603           : AE94
          MOVB @>A538,*R2                                 D4A0 A538      : AE96
          DEC  R2                                         0602           : AE9A
          CB   @>A76B,*R2                                 94A0 A76B      : AE9C
          JNE  XAE94                                      16F9           : AEA0
          MOVB @>A538,*R2                                 D4A0 A538      : AEA2
          SLA  R3,8                                       0A83           : AEA6
          MOVB R3,@>A6BE                                  D803 A6BE      : AEA8
          RTWP                                            0380           : AEAC
XAEAE     MOVB @>A2DE,@>A6BF                              D820 A2DE A6BF : AEAE
          SETO @>A72E                                     0720 A72E      : AEB4
          LI   R1,>A738                                   0201 A738      : AEB8
          MOV  R1,@>A79C                                  C801 A79C      : AEBC
          LI   R3,>2020                                   0203 2020      : AEC0
          SETO R4                                         0704           : AEC4
          LI   R5,>0004                                   0205 0004      : AEC6
          MOV  R5,@>A774                                  C805 A774      : AECA
          BLWP @>AED4                                     0420 AED4      : AECE
          RTWP                                            0380           : AED2
          A    R10,*R14                                   A78A           : AED4
          A    *R8,*R11+                                  AED8           : AED6
          MOV  R13,@>A758                                 C80D A758      : AED8
          MOV  R14,@>A75A                                 C80E A75A      : AEDC
          MOV  R15,@>A75C                                 C80F A75C      : AEE0
XAEE4     LI   R2,>00FF                                   0202 00FF      : AEE4
          S    @>A772,R2                                  60A0 A772      : AEE8
          C    R2,@>A774                                  8802 A774      : AEEC
          JLE  XAEF6                                      1202           : AEF0
          MOV  @>A774,R2                                  C0A0 A774      : AEF2
XAEF6     S    R2,@>A774                                  6802 A774      : AEF6
          LI   R0,>0620                                   0200 0620      : AEFA
          A    @>A772,R0                                  A020 A772      : AEFE
          MOV  R9,R1                                      C049           : AF02
          A    R2,R9                                      A242           : AF04
          A    R2,@>A772                                  A802 A772      : AF06
          BLWP @>A4F0                                     0420 A4F0      : AF0A
          C    @>A772,@>A8B8                              8820 A772 A8B8 : AF0E
          JEQ  XAF22                                      1306           : AF14
          MOV  @>A72E,R1                                  C060 A72E      : AF16
          JEQ  XAF6C                                      1328           : AF1A
          MOV  @>A772,R1                                  C060 A772      : AF1C
          JEQ  XAF88                                      1333           : AF20
XAF22     LI   R0,>0600                                   0200 0600      : AF22
          LI   R1,>0900                                   0201 0900      : AF26
          BLWP @>A4EC                                     0420 A4EC      : AF2A
          MOV  @>A782,@>8356                              C820 A782 8356 : AF2E
          BLWP @>A4FC                                     0420 A4FC      : AF34
          DATA >0008
          LI   R0,>0608                                   0200 0608      : AF3A
          BLWP @>A4F4                                     0420 A4F4      : AF3E
          COC  @>A8B2,R1                                  2060 A8B2      : AF42
          JEQ  XAF88                                      1320           : AF46
          LI   R0,>0600                                   0200 0600      : AF48
          MOVB @>A8B0,R1                                  D060 A8B0      : AF4C
          BLWP @>A4EC                                     0420 A4EC      : AF50
          MOV  @>A782,@>8356                              C820 A782 8356 : AF54
          BLWP @>A4FC                                     0420 A4FC      : AF5A
          DATA >0008
          JEQ  XB050                                      1377           : AF60
          CLR  @>A772                                     04E0 A772      : AF62
          MOV  @>A774,R2                                  C0A0 A774      : AF66
          JNE  XAEE4                                      16BC           : AF6A
XAF6C     MOV  @>A72E,R2                                  C0A0 A72E      : AF6C
          JEQ  XAF7A                                      1304           : AF70
          MOV  @>A772,R2                                  C0A0 A772      : AF72
          JNE  XAF22                                      16D5           : AF76
          JMP  XAF88                                      1007           : AF78
XAF7A     MOV  @>A758,R13                                 C360 A758      : AF7A
          MOV  @>A75A,R14                                 C3A0 A75A      : AF7E
          MOV  @>A75C,R15                                 C3E0 A75C      : AF82
          RTWP                                            0380           : AF86
XAF88     LI   R0,>0600                                   0200 0600      : AF88
          MOVB @>A76E,R1                                  D060 A76E      : AF8C
          BLWP @>A4EC                                     0420 A4EC      : AF90
          MOV  @>A782,@>8356                              C820 A782 8356 : AF94
          BLWP @>A4FC                                     0420 A4FC      : AF9A
          DATA >0008
          JEQ  XB048                                      1353           : AFA0
          MOV  @>A72E,R5                                  C160 A72E      : AFA2
          JEQ  XAFB6                                      1307           : AFA6
          MOV  @>A772,R5                                  C160 A772      : AFA8
          JNE  XAFB6                                      1604           : AFAC
          MOVB @>A2DE,@>A6BF                              D820 A2DE A6BF : AFAE
          RTWP                                            0380           : AFB4
XAFB6     MOVB @>A76D,@>A6BF                              D820 A76D A6BF : AFB6
          LI   R14,>AB22                                  020E AB22      : AFBC
          INC  @>A776                                     05A0 A776      : AFC0
          RTWP                                            0380           : AFC4
          A    R10,*R14                                   A78A           : AFC6
          A    R10,*R15+                                  AFCA           : AFC8
          MOV  @>A776,R1                                  C060 A776      : AFCA
          COC  @>A8BA,R1                                  2060 A8BA      : AFCE
          JNE  XAFE2                                      1607           : AFD2
          AI   R1,>0006                                   0221 0006      : AFD4
          COC  @>A8BE,R1                                  2060 A8BE      : AFD8
          JNE  XAFE2                                      1602           : AFDC
          AI   R1,>0060                                   0221 0060      : AFDE
XAFE2     MOV  R1,@>A776                                  C801 A776      : AFE2
          MOVB @>A6CF,R0                                  D020 A6CF      : AFE6
          SRL  R0,8                                       0980           : AFEA
          AI   R0,>060A                                   0220 060A      : AFEC
          LI   R4,>0003                                   0204 0003      : AFF0
XAFF4     ANDI R1,>0FFF                                   0241 0FFF      : AFF4
          ORI  R1,>3000                                   0261 3000      : AFF8
          BLWP @>A4EC                                     0420 A4EC      : AFFC
          INC  R0                                         0580           : B000
          SLA  R1,4                                       0A41           : B002
          DEC  R4                                         0604           : B004
          JNE  XAFF4                                      16F6           : B006
          CLR  R1                                         04C1           : B008
          LI   R0,>0600                                   0200 0600      : B00A
          BLWP @>A4EC                                     0420 A4EC      : B00E
          LI   R0,>0601                                   0200 0601      : B012
          LI   R1,>0200                                   0201 0200      : B016
          BLWP @>A4EC                                     0420 A4EC      : B01A
          LI   R0,>0606                                   0200 0606      : B01E
          CLR  R1                                         04C1           : B022
          BLWP @>A4EC                                     0420 A4EC      : B024
          INC  R0                                         0580           : B028
          BLWP @>A4EC                                     0420 A4EC      : B02A
          MOV  @>A782,@>8356                              C820 A782 8356 : B02E
          BLWP @>A4FC                                     0420 A4FC      : B034
          DATA >0008
          JEQ  XB040                                      1302           : B03A
          B    @>AF22                                     0460 AF22      : B03C
XB040     MOV  @>A76F,@>A6BF                              C820 A76F A6BF : B040
          JMP  XB056                                      1007           : B046
XB048     MOV  @>A770,@>A6BF                              C820 A770 A6BF : B048
          JMP  XB056                                      1003           : B04E
XB050     MOV  @>A771,@>A6BF                              C820 A771 A6BF : B050
XB056     LI   R14,>AB22                                  020E AB22      : B056
          RTWP                                            0380           : B05A
          
          END 

Restore Assembly:

          AORG >A688
XA688     A    *R10,*R14                                  A79A           : A688
          A    R0,@>0282(R2)                              A880 0282      : A68A
          DATA >0046
          JGT  XA6AA                                      150C           : A690
          AI   R2,>FFF9                                   0222 FFF9      : A692
          AI   R2,>FFD0                                   0222 FFD0      : A696
          SLA  R3,4                                       0A43           : A69A
          JNC  XA6A6                                      1704           : A69C
          ABS  @>20C8                                     0760 20C8      : A69E
          JEQ  XA6A6                                      1301           : A6A2
          BLWP *R4                                        0414           : A6A4
XA6A6     A    R2,R3                                      A0C2           : A6A6
          JMP  XA67A                                      10E8           : A6A8
XA6AA     DEC  R5                                         0605           : A6AA
          ABS  @>20C8                                     0760 20C8      : A6AC
          JEQ  XA6B6                                      1302           : A6B0
          BLWP @>A444                                     0420 A444      : A6B2
XA6B6     CLR  R3                                         04C3           : A6B6
          RTWP                                            0380           : A6B8
          MOVB *R5+,R2                                    D0B5           : A6BA
          SRL  R2,8                                       0982           : A6BC
          DATA >0000
          DATA >0009
          JNE  XA6C8                                      1602           : A6C2
          LI   R2,>0020                                   0202 0020      : A6C4
XA6C8     CI   R2,>0020                                   0282 0020      : A6C8
          JLT  XA6AA                                      11EE           : A6CC
          CI   R2,>005F                                   0282 005F      : A6CE
          JH   XA6DC                                      1B04           : A6D2
          MOVB @>24D0(R2),R1                              D062 24D0      : A6D4
          SRL  R1,8                                       0981           : A6D8
          RT                                              045B           : A6DA
XA6DC     CLR  R1                                         04C1           : A6DC
          RT                                              045B           : A6DE
          BL   *R7                                        0697           : A6E0
          C    R1,R0                                      8001           : A6E2
          JNE  XA6E8                                      1601           : A6E4
          BL   *R10                                       069A           : A6E6
XA6E8     MOV  R2,R3                                      C0C2           : A6E8
          BL   *R7                                        0697           : A6EA
          C    R1,R0                                      8001           : A6EC
          JNE  XA6F2                                      1601           : A6EE
          BL   *R10                                       069A           : A6F0
XA6F2     SLA  R3,8                                       0A83           : A6F2
          SOC  R2,R3                                      E0C2           : A6F4
          RTWP                                            0380           : A6F6
          MOV  R11,R12                                    C30B           : A6F8
          DATA >0004
          DECT R11                                        064B           : A6FC
          SOCB *R15+,*R15+                                FFFF           : A6FE
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DEC  @>0609(R2)                                 0622 0609      : A70E
          DATA >0000
          DATA >0000
          COC  @>4600,R0                                  2020 4600      : A716
          LI   R0,>0800                                   0200 0800      : A71A
          BLWP R0                                         0400           : A71E
          DATA >0010
          SOCB *R15+,*R15+                                FFFF           : A722
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0000
          DATA >0102
          DATA >0330
          SETO R2                                         0702           : A738
          BLWP R6                                         0406           : A73A
          SRA  R10,0                                      080A           : A73C
          SRC  R12,0                                      0B0C           : A73E
          DATA >0D00
          JMP  XA664                                      1090           : A742
          JLE  XA666                                      1290           : A744
          JHE  XA668                                      1490           : A746
          JNE  XA66A                                      1690           : A748
          COC  *R2,R2                                     2092           : A74A
          COC  *R10+,R9                                   227A           : A74C
          CZC  *R10+,R1                                   247A           : A74E
          CZC  *R10+,R9                                   267A           : A750
          A    R2,@>A756                                  A802 A756      : A752
          SZCB @>A7BC,R15                                 53E0 A7BC      : A756
          LWPI >83E0                                      02E0 83E0      : A75A
          MOV  @>8356,R1                                  C060 8356      : A75E
          MOV  R1,@>A76A                                  C801 A76A      : A762
          BLWP @>AAA2                                     0420 AAA2      : A766
          DATA >0000
          MOVB R1,R7                                      D1C1           : A76C
          A    *R14,@>A772                                A81E A772      : A76E
          SZCB @>A7D8,R15                                 53E0 A7D8      : A772
          LWPI >83E0                                      02E0 83E0      : A776
          MOV  @>8356,R1                                  C060 8356      : A77A
          MOV  R1,@>A786                                  C801 A786      : A77E
          BLWP @>AABE                                     0420 AABE      : A782
          JLT  XA79A                                      1109           : A786
          MOVB R1,R7                                      D1C1           : A788
          SRL  R7,8                                       0987           : A78A
          SETO R6                                         0706           : A78C
          LI   R2,>834A                                   0202 834A      : A78E
          INC  R1                                         0581           : A792
          INC  R6                                         0586           : A794
          C    R6,R7                                      81C6           : A796
          JEQ  XA7AA+2                                    1309           : A798
XA79A     LIMI >0000                                      0300 0000      : A79A
          CLR  @>A730                                     04E0 A730      : A79E
          CLR  @>A732                                     04E0 A732      : A7A2
          MOV  R11,@>A728                                 C80B A728      : A7A6
XA7AA     BLWP @>A7B8                                     0420 A7B8      : A7AA
          MOV  @>A728,R11                                 C2E0 A728      : A7AE
          LIMI >0002                                      0300 0002      : A7B2
          RT                                              045B           : A7B6
          A    *R10,*R11                                  A6DA           : A7B8
          A    *R12+,*R14                                 A7BC           : A7BA
          MOVB @>A13F,@>A6BF                              D820 A13F A6BF : A7BC
          LI   R0,>0600                                   0200 0600      : A7C2
          LI   R1,>A6FA                                   0201 A6FA      : A7C6
          MOVB @>A6CF,R3                                  D0E0 A6CF      : A7CA
          AI   R3,>0300                                   0223 0300      : A7CE
          MOVB R3,@>A703                                  D803 A703      : A7D2
          LI   R2,>000A                                   0202 000A      : A7D6
          BLWP @>A4F0                                     0420 A4F0      : A7DA
          LI   R1,>A6C0                                   0201 A6C0      : A7DE
          MOVB @>A6CF,R3                                  D0E0 A6CF      : A7E2
          SRL  R3,8                                       0983           : A7E6
          MOV  R3,R2                                      C083           : A7E8
          A    R1,R3                                      A0C1           : A7EA
          MOVB @>A737,*R3+                                DCE0 A737      : A7EC
          MOVB @>A737,*R3+                                DCE0 A737      : A7F0
          MOVB @>A737,*R3+                                DCE0 A737      : A7F4
          LI   R0,>060A                                   0200 060A      : A7F8
          AI   R2,>0003                                   0222 0003      : A7FC
          BLWP @>A4F0                                     0420 A4F0      : A800
          MOV  @>A710,@>8356                              C820 A710 8356 : A804
          BLWP @>A4FC                                     0420 A4FC      : A80A
          DATA >0008
          JNE  XA81A                                      1604           : A810
XA812     MOVB @>A73B,@>A6BF                              D820 A73B A6BF : A812
          JMP  XA87E                                      1032           : A818
XA81A     SETO @>A730                                     0720 A730      : A81A
          LI   R0,>0600                                   0200 0600      : A81E
          MOVB @>A735,R1                                  D060 A735      : A822
          BLWP @>A4EC                                     0420 A4EC      : A826
          MOV  @>A710,@>8356                              C820 A710 8356 : A82A
          BLWP @>A4FC                                     0420 A4FC      : A830
          DATA >0008
          JEQ  XA812                                      13ED           : A836
          LI   R0,>064B                                   0200 064B      : A838
          LI   R1,>A742                                   0201 A742      : A83C
          LI   R2,>0028                                   0202 0028      : A840
          BLWP @>A4F8                                     0420 A4F8      : A844
          MOVB @>A6BE,R2                                  D0A0 A6BE      : A848
          SRL  R2,8                                       0982           : A84C
          LI   R3,>A696                                   0203 A696      : A84E
XA852     CB   *R3+,*R1+                                  9C73           : A852
          JNE  XA866                                      1608           : A854
          DEC  R2                                         0602           : A856
          JNE  XA852                                      16FC           : A858
          CI   R3,>A6BE                                   0283 A6BE      : A85A
          JEQ  XA870                                      1308           : A85E
          CB   @>A538,*R1                                 9460 A538      : A860
          JEQ  XA870                                      1305           : A864
XA866     MOV  @>A739,@>A6BF                              C820 A739 A6BF : A866
          B    @>AC36                                     0460 AC36      : A86C
XA870     LI   R1,>00CF                                   0201 00CF      : A870
          MOV  R1,@>A712                                  C801 A712      : A874
          MOVB @>A13E,@>A6BF                              D820 A13E A6BF : A878
XA87E     RTWP                                            0380           : A87E
          LIMI >0000                                      0300 0000      : A880
          MOV  R11,@>A728                                 C80B A728      : A884
          BLWP @>A896                                     0420 A896      : A888
          MOV  @>A728,R11                                 C2E0 A728      : A88C
          LIMI >0002                                      0300 0002      : A890
          RT                                              045B           : A894
          A    *R10,*R11                                  A6DA           : A896
          A    *R10,@>9820(R2)                            A89A 9820      : A898
          A    *R15+,*R10                                 A6BF           : A89C
          A    *R8+,*R12                                  A738           : A89E
          JNE  XA8A6                                      1602           : A8A0
          BLWP @>AB14                                     0420 AB14      : A8A2
XA8A6     CLR  @>A714                                     04E0 A714      : A8A6
          LI   R0,>0004                                   0200 0004      : A8AA
          LI   R1,>A742                                   0201 A742      : A8AE
          BLWP @>AB18                                     0420 AB18      : A8B2
          C    *R1,@>A716                                 8811 A716      : A8B6
          JNE  XA8D6                                      160D           : A8BA
          INCT R1                                         05C1           : A8BC
          C    *R1,@>A722                                 8811 A722      : A8BE
          JEQ  XA8CC                                      1304           : A8C2
          MOVB @>A73F,@>A6BF                              D820 A73F A6BF : A8C4
          RTWP                                            0380           : A8CA
XA8CC     MOVB @>A2DE,@>A6BF                              D820 A2DE A6BF : A8CC
          B    @>AC36                                     0460 AC36      : A8D2
XA8D6     LI   R1,>A746                                   0201 A746      : A8D6
          LI   R0,>0034                                   0200 0034      : A8DA
          BLWP @>AB18                                     0420 AB18      : A8DE
          MOV  @>A774,R2                                  C0A0 A774      : A8E2
          COC  @>A720,R2                                  20A0 A720      : A8E6
          JNE  XA92A                                      161F           : A8EA
          LI   R2,>A742                                   0202 A742      : A8EC
          CLR  R4                                         04C4           : A8F0
XA8F2     CB   *R2+,@>A538                                9832 A538      : A8F2
          JEQ  XA900                                      1304           : A8F6
          INC  R4                                         0584           : A8F8
          CI   R4,>0028                                   0284 0028      : A8FA
          JNE  XA8F2                                      16F9           : A8FE
XA900     SWPB R4                                         06C4           : A900
          MOV  R4,@>A6BE                                  C804 A6BE      : A902
          BLWP @>ACB4                                     0420 ACB4      : A906
          MOVB @>A6BF,R1                                  D060 A6BF      : A90A
          JEQ  XA8A6                                      13CB           : A90E
          CB   R1,@>A73A                                  9801 A73A      : A910
          JNE  XA91C                                      1603           : A914
          CLR  @>A6BE                                     04E0 A6BE      : A916
          JMP  XA8A6                                      10C5           : A91A
XA91C     MOVB @>A73C,@>A6BF                              D820 A73C A6BF : A91C
          MOVB R1,@>A6BE                                  D801 A6BE      : A922
          B    @>AC36                                     0460 AC36      : A926
XA92A     COC  @>A71C,R2                                  20A0 A71C      : A92A
          JNE  XA934                                      1602           : A92E
          B    @>AA94                                     0460 AA94      : A930
XA934     LI   R1,>0002                                   0201 0002      : A934
          COC  @>A71E,R2                                  20A0 A71E      : A938
          JNE  XA942                                      1602           : A93C
          ORI  R1,>0010                                   0261 0010      : A93E
XA942     COC  @>A2DC,R2                                  20A0 A2DC      : A942
          JNE  XA94C                                      1602           : A946
          ORI  R1,>0008                                   0261 0008      : A948
XA94C     LI   R4,>A704                                   0204 A704      : A94C
          MOV  R1,*R4+                                    CD01           : A950
          LI   R1,>AF8C                                   0201 AF8C      : A952
          MOV  R1,*R4+                                    CD01           : A956
          CLR  R1                                         04C1           : A958
          MOVB @>A779,R1                                  D060 A779      : A95A
          MOV  R1,*R4+                                    CD01           : A95E
          CLR  *R4+                                       04F4           : A960
          BL   @>AADE                                     06A0 AADE      : A962
          MOV  @>A70E,@>8356                              C820 A70E 8356 : A966
          BLWP @>A4FC                                     0420 A4FC      : A96C
          DATA >0008
          JNE  XA98C                                      160C           : A972
          CB   R0,@>A13E                                  9800 A13E      : A974
          JEQ  XA988                                      1307           : A978
XA97A     MOVB @>A73D,@>A6BF                              D820 A73D A6BF : A97A
          MOVB R0,@>A6BE                                  D800 A6BE      : A980
          B    @>AC36                                     0460 AC36      : A984
XA988     SETO @>A714                                     0720 A714      : A988
XA98C     LI   R1,>4300                                   0201 4300      : A98C
          LI   R0,>0619                                   0200 0619      : A990
          BLWP @>A4EC                                     0420 A4EC      : A994
          MOV  @>A774,R1                                  C060 A774      : A998
          COC  @>A71E,R1                                  2060 A71E      : A99C
          JNE  XAA5C                                      165D           : A9A0
          MOV  @>A772,@>A724                              C820 A772 A724 : A9A2
          MOV  @>A776,@>A726                              C820 A776 A726 : A9A8
          CLR  R7                                         04C7           : A9AE
          CLR  R6                                         04C6           : A9B0
XA9B2     C    R6,@>A724                                  8806 A724      : A9B2
          JNE  XAA02                                      1625           : A9B6
          C    R7,@>A726                                  8807 A726      : A9B8
          JNE  XAA02                                      1622           : A9BC
XA9BE     LI   R0,>0619                                   0200 0619      : A9BE
          MOVB @>A734,R1                                  D060 A734      : A9C2
          BLWP @>A4EC                                     0420 A4EC      : A9C6
          MOV  @>A70E,@>8356                              C820 A70E 8356 : A9CA
          BLWP @>A4FC                                     0420 A4FC      : A9D0
          DATA >0008
          JEQ  XA97A                                      13D1           : A9D6
          ANDI R7,>00FF                                   0247 00FF      : A9D8
          MOV  R7,R7                                      C1C7           : A9DC
          JEQ  XA9EE                                      1307           : A9DE
          LI   R1,>AF8C                                   0201 AF8C      : A9E0
          LI   R0,>0100                                   0200 0100      : A9E4
          S    R7,R0                                      6007           : A9E8
          BLWP @>AB18                                     0420 AB18      : A9EA
XA9EE     MOVB @>A13F,@>A6BF                              D820 A13F A6BF : A9EE
          MOV  @>A714,R1                                  C060 A714      : A9F4
          JEQ  XAA00                                      1303           : A9F8
          MOVB @>A740,@>A6BF                              D820 A740 A6BF : A9FA
XAA00     RTWP                                            0380           : AA00
XAA02     LI   R0,>0001                                   0200 0001      : AA02
          LI   R1,>A6DF                                   0201 A6DF      : AA06
          CLR  R2                                         04C2           : AA0A
          BLWP @>AB18                                     0420 AB18      : AA0C
          MOV  R2,R2                                      C082           : AA10
          JEQ  XAA1E                                      1305           : AA12
          MOV  R2,R0                                      C002           : AA14
          LI   R1,>AF8C                                   0201 AF8C      : AA16
          BLWP @>AB18                                     0420 AB18      : AA1A
XAA1E     MOV  R2,R1                                      C042           : AA1E
          SWPB R1                                         06C1           : AA20
          LI   R0,>061E                                   0200 061E      : AA22
          BLWP @>A4EC                                     0420 A4EC      : AA26
          MOV  @>A714,@>A714                              C820 A714 A714 : AA2A
          JNE  XAA44                                      1609           : AA30
          MOV  @>A70E,@>8356                              C820 A70E 8356 : AA32
          BLWP @>A4FC                                     0420 A4FC      : AA38
          DATA >0008
          JNE  XAA44                                      1602           : AA3E
XAA40     B    @>A97A                                     0460 A97A      : AA40
XAA44     MOV  R7,R7                                      C1C7           : AA44
          JNE  XAA4A                                      1601           : AA46
          INC  R6                                         0586           : AA48
XAA4A     A    R2,R7                                      A1C2           : AA4A
          INC  R7                                         0587           : AA4C
          CI   R7,>0100                                   0287 0100      : AA4E
          JLE  XAA56                                      1201           : AA52
          INC  R6                                         0586           : AA54
XAA56     ANDI R7,>00FF                                   0247 00FF      : AA56
          JMP  XA9B2                                      10AB           : AA5A
XAA5C     MOV  @>A776,R6                                  C1A0 A776      : AA5C
          MOV  @>A778,R8                                  C220 A778      : AA60
          INC  R8                                         0588           : AA64
          CLR  R7                                         04C7           : AA66
XAA68     MOV  R6,R6                                      C186           : AA68
          JEQ  XA9BE                                      13A9           : AA6A
          A    R8,R7                                      A1C8           : AA6C
          DEC  R6                                         0606           : AA6E
          MOV  R8,R0                                      C008           : AA70
          LI   R1,>AF8B                                   0201 AF8B      : AA72
          BLWP @>AB18                                     0420 AB18      : AA76
          MOV  @>A714,@>A714                              C820 A714 A714 : AA7A
          JNE  XAA68                                      16F3           : AA80
          MOV  @>A70E,@>8356                              C820 A70E 8356 : AA82
          BLWP @>A4FC                                     0420 A4FC      : AA88
          DATA >0008
          JNE  XAA68                                      16EC           : AA8E
          B    @>A97A                                     0460 A97A      : AA90
          LI   R4,>A704                                   0204 A704      : AA94
          MOV  @>A718,*R4+                                CD20 A718      : AA98
          LI   R2,>AF8C                                   0202 AF8C      : AA9C
          MOV  R2,*R4+                                    CD02           : AAA0
          CLR  *R4+                                       04F4           : AAA2
          MOV  @>A776,*R4+                                CD20 A776      : AAA4
          MOV  @>A776,@>A724                              C820 A776 A724 : AAA8
          BL   @>AADE                                     06A0 AADE      : AAAE
          MOV  @>A724,R0                                  C020 A724      : AAB2
          LI   R1,>AF8C                                   0201 AF8C      : AAB6
          BLWP @>AB18                                     0420 AB18      : AABA
          MOV  @>A724,R7                                  C1E0 A724      : AABE
          MOV  @>A70E,@>8356                              C820 A70E 8356 : AAC2
          BLWP @>A4FC                                     0420 A4FC      : AAC8
          DATA >0008
          JNE  XAADA                                      1605           : AACE
          CB   R0,@>A13E                                  9800 A13E      : AAD0
          JNE  XAA40                                      16B5           : AAD4
          SETO @>A714                                     0720 A714      : AAD6
XAADA     B    @>A9D8                                     0460 A9D8      : AADA
          CLR  R6                                         04C6           : AADE
          LI   R2,>A742                                   0202 A742      : AAE0
XAAE4     CB   *R2+,@>A538                                9832 A538      : AAE4
          JEQ  XAAF2                                      1304           : AAE8
          INC  R6                                         0586           : AAEA
          CI   R2,>A76A                                   0282 A76A      : AAEC
          JNE  XAAE4                                      16F9           : AAF0
XAAF2     MOV  R6,*R4                                     C506           : AAF2
          LI   R0,>0619                                   0200 0619      : AAF4
          LI   R1,>A704                                   0201 A704      : AAF8
          LI   R2,>000A                                   0202 000A      : AAFC
          BLWP @>A4F0                                     0420 A4F0      : AB00
          MOV  R6,R2                                      C086           : AB04
          LI   R0,>0623                                   0200 0623      : AB06
          LI   R1,>A742                                   0201 A742      : AB0A
          BLWP @>A4F0                                     0420 A4F0      : AB0E
          RT                                              045B           : AB12
          A    *R10+,*R13                                 A77A           : AB14
          A    @>A77A(R14),@>AB1C(R12)                    AB2E A77A AB1C : AB16
          MOV  R13,@>A72A                                 C80D A72A      : AB1C
          MOV  R14,@>A72C                                 C80E A72C      : AB20
          MOV  R15,@>A72E                                 C80F A72E      : AB24
          MOV  *R13+,R9                                   C27D           : AB28
          MOV  *R13,R10                                   C29D           : AB2A
          DECT R13                                        064D           : AB2C
          MOV  @>A730,R1                                  C060 A730      : AB2E
          JNE  XAB9C                                      1634           : AB32
          MOVB @>A6CF,R1                                  D060 A6CF      : AB34
          AI   R1,>0300                                   0221 0300      : AB38
          MOVB R1,@>A703                                  D801 A703      : AB3C
          SRL  R1,8                                       0981           : AB40
          MOV  R1,R6                                      C181           : AB42
          AI   R1,>A6BD                                   0221 A6BD      : AB44
          LI   R4,>0003                                   0204 0003      : AB48
          MOV  @>A732,R3                                  C0E0 A732      : AB4C
XAB50     ANDI R3,>0FFF                                   0243 0FFF      : AB50
          ORI  R3,>3000                                   0263 3000      : AB54
          MOVB R3,*R1+                                    DC43           : AB58
          SLA  R3,4                                       0A43           : AB5A
          DEC  R4                                         0604           : AB5C
          JNE  XAB50                                      16F8           : AB5E
          LI   R0,>0600                                   0200 0600      : AB60
          LI   R1,>A6FA                                   0201 A6FA      : AB64
          LI   R2,>000A                                   0202 000A      : AB68
          BLWP @>A4F0                                     0420 A4F0      : AB6C
          LI   R0,>060A                                   0200 060A      : AB70
          LI   R1,>A6C0                                   0201 A6C0      : AB74
          MOV  R6,R2                                      C086           : AB78
          BLWP @>A4F0                                     0420 A4F0      : AB7A
          MOV  @>A710,@>8356                              C820 A710 8356 : AB7E
          BLWP @>A4FC                                     0420 A4FC      : AB84
          DATA >0008
          JNE  XAB94                                      1604           : AB8A
          MOVB @>A73E,@>A6BF                              D820 A73E A6BF : AB8C
          JMP  XAC7A                                      1073           : AB92
XAB94     SETO @>A730                                     0720 A730      : AB94
          CLR  @>A712                                     04E0 A712      : AB98
XAB9C     MOV  @>A712,R7                                  C1E0 A712      : AB9C
          JNE  XABFC                                      162D           : ABA0
XABA2     LI   R0,>0600                                   0200 0600      : ABA2
          LI   R1,>0900                                   0201 0900      : ABA6
          BLWP @>A4EC                                     0420 A4EC      : ABAA
          MOV  @>A710,@>8356                              C820 A710 8356 : ABAE
          BLWP @>A4FC                                     0420 A4FC      : ABB4
          DATA >0008
          LI   R0,>0608                                   0200 0608      : ABBA
          BLWP @>A4F4                                     0420 A4F4      : ABBE
          COC  @>A13E,R1                                  2060 A13E      : ABC2
          JEQ  XAC30                                      1334           : ABC6
          COC  @>A71A,R1                                  2060 A71A      : ABC8
          JEQ  XAC30                                      1331           : ABCC
          LI   R0,>0600                                   0200 0600      : ABCE
          LI   R1,>0200                                   0201 0200      : ABD2
          BLWP @>A4EC                                     0420 A4EC      : ABD6
          MOV  @>A710,@>8356                              C820 A710 8356 : ABDA
          BLWP @>A4FC                                     0420 A4FC      : ABE0
          DATA >0008
          JNE  XABF4                                      1606           : ABE6
XABE8     MOVB @>A73B,@>A6BF                              D820 A73B A6BF : ABE8
          MOVB R0,@>A6BE                                  D800 A6BE      : ABEE
          JMP  XAC7A                                      1043           : ABF2
XABF4     LI   R7,>00FF                                   0207 00FF      : ABF4
          MOV  R7,@>A712                                  C807 A712      : ABF8
XABFC     C    R7,R9                                      8247           : ABFC
          JHE  XAC2A                                      1415           : ABFE
          MOV  R7,R2                                      C087           : AC00
          S    R7,R9                                      6247           : AC02
XAC04     MOV  R10,R1                                     C04A           : AC04
          LI   R0,>074A                                   0200 074A      : AC06
          S    R7,R0                                      6007           : AC0A
          BLWP @>A4F8                                     0420 A4F8      : AC0C
          A    R2,R10                                     A282           : AC10
          S    R2,R7                                      61C2           : AC12
          MOV  R7,@>A712                                  C807 A712      : AC14
          MOV  R9,R9                                      C249           : AC18
          JNE  XABA2                                      16C3           : AC1A
          MOV  @>A72A,R13                                 C360 A72A      : AC1C
          MOV  @>A72C,R14                                 C3A0 A72C      : AC20
          MOV  @>A72E,R15                                 C3E0 A72E      : AC24
          RTWP                                            0380           : AC28
XAC2A     MOV  R9,R2                                      C089           : AC2A
          CLR  R9                                         04C9           : AC2C
          JMP  XAC04                                      10EA           : AC2E
XAC30     MOVB @>A738,@>A6BF                              D820 A738 A6BF : AC30
          LI   R0,>0600                                   0200 0600      : AC36
          LI   R1,>0100                                   0201 0100      : AC3A
          BLWP @>A4EC                                     0420 A4EC      : AC3E
          MOV  @>A710,@>8356                              C820 A710 8356 : AC42
          BLWP @>A4FC                                     0420 A4FC      : AC48
          DATA >0008
          JEQ  XABE8                                      13CC           : AC4E
          CB   @>A738,@>A6BF                              9820 A738 A6BF : AC50
          JNE  XAC7E                                      1613           : AC56
          LI   R3,>0006                                   0203 0006      : AC58
          LI   R2,>000A                                   0202 000A      : AC5C
          MOV  @>A732,R1                                  C060 A732      : AC60
          INC  R1                                         0581           : AC64
XAC66     COC  R2,R1                                      2042           : AC66
          JNE  XAC72                                      1604           : AC68
          A    R3,R1                                      A043           : AC6A
          SLA  R3,4                                       0A43           : AC6C
          SLA  R2,4                                       0A42           : AC6E
          JMP  XAC66                                      10FA           : AC70
XAC72     MOV  R1,@>A732                                  C801 A732      : AC72
          CLR  @>A730                                     04E0 A730      : AC76
XAC7A     LI   R14,>AC7E                                  020E AC7E      : AC7A
XAC7E     RTWP                                            0380           : AC7E
          SOCB R0,*R12+                                   FF00           : AC80
          MPY  *R12,R6                                    399C           : AC82
          JGT  XAC8C                                      1503           : AC84
          BLWP *R11                                       041B           : AC86
          DEC  @>399C                                     0620 399C      : AC88
XAC8C     MOV  R1,*R12                                    C701           : AC8C
          MOV  R7,R7                                      C1C7           : AC8E
          JEQ  XAC9C                                      1305           : AC90
          MOV  R10,*R8                                    C60A           : AC92
          BLWP @>A55C                                     0420 A55C      : AC94
          COC  *R0,R9                                     2250           : AC98
          JMP  XACA8                                      1006           : AC9A
XAC9C     MOV  R3,@>2260                                  C803 2260      : AC9C
          MOV  R4,@>0000                                  C804 0000      : ACA0
          DATA >0000
          SZCB R4,*R13                                    5744           : ACA6
XACA8     SZC  R9,*R1                                     4449           : ACA8
          SZCB R0,R8                                      5200           : ACAA
          SZCB *R1+,R12                                   5331           : ACAC
          LDCR *R3+,8                                     3233           : ACAE
          STCR @>2E00,0                                   3420 2E00      : ACB0
          A    R2,*R2+                                    AC82           : ACB4
          A    *R8+,*R2+                                  ACB8           : ACB6
          LI   R3,>A742                                   0203 A742      : ACB8
          MOVB @>A13F,@>A6BF                              D820 A13F A6BF : ACBC
          CLR  @>ACA4                                     04E0 ACA4      : ACC2
          MOV  @>AC80,@>A2CC                              C820 AC80 A2CC : ACC6
          MOVB @>A6BE,R0                                  D020 A6BE      : ACCC
          SRL  R0,8                                       0980           : ACD0
          MOV  @>A2E0,R1                                  C060 A2E0      : ACD2
          C    *R3+,@>ACA6                                8833 ACA6      : ACD6
          JEQ  XACE0                                      1302           : ACDA
XACDC     B    @>AEA8                                     0460 AEA8      : ACDC
XACE0     CB   *R3+,@>ACAC                                9833 ACAC      : ACE0
          JNE  XACDC                                      16FB           : ACE4
          MOVB *R3+,R8                                    D233           : ACE6
          AI   R0,>FFFC                                   0220 FFFC      : ACE8
          CB   R8,@>ACB2                                  9808 ACB2      : ACEC
          JEQ  XAD30                                      131F           : ACF0
          CLR  R9                                         04C9           : ACF2
          CB   R8,@>ACAD                                  9808 ACAD      : ACF4
          JEQ  XAD12                                      130C           : ACF8
          INC  R9                                         0589           : ACFA
          CB   R8,@>ACAE                                  9808 ACAE      : ACFC
          JEQ  XAD12                                      1308           : AD00
          INC  R9                                         0589           : AD02
          CB   R8,@>ACAF                                  9808 ACAF      : AD04
          JEQ  XAD12                                      1304           : AD08
          INC  R9                                         0589           : AD0A
          CB   R8,@>ACB0                                  9808 ACB0      : AD0C
          JNE  XACDC                                      16E5           : AD10
XAD12     CB   *R3+,@>ACB2                                9833 ACB2      : AD12
          JNE  XACDC                                      16E2           : AD16
          DEC  R0                                         0600           : AD18
          MOV  R9,@>A2CC                                  C809 A2CC      : AD1A
          CLR  @>A29E                                     04E0 A29E      : AD1E
          MOV  @>A2E0,@>A2A6                              C820 A2E0 A2A6 : AD22
          BLWP @>A09E                                     0420 A09E      : AD28
          B    @>AEA0                                     0460 AEA0      : AD2C
XAD30     LI   R2,>A68C                                   0202 A68C      : AD30
XAD34     MOVB @>ACB1,*R2+                                DCA0 ACB1      : AD34
          CI   R2,>A696                                   0282 A696      : AD38
          JNE  XAD34                                      16FB           : AD3C
          LI   R2,>A68C                                   0202 A68C      : AD3E
          MOV  R0,R0                                      C000           : AD42
          JEQ  XAD4A                                      1302           : AD44
          B    @>AE14                                     0460 AE14      : AD46
XAD4A     MOVB @>A2CC,R0                                  D020 A2CC      : AD4A
          JNE  XACDC                                      16C6           : AD4E
          MOV  @>A2E0,R1                                  C060 A2E0      : AD50
          MOV  @>001A(R1),R9                              C261 001A      : AD54
          ANDI R9,>00FF                                   0249 00FF      : AD58
          MOV  R1,R8                                      C201           : AD5C
          AI   R8,>0020                                   0228 0020      : AD5E
          BL   @>A1BC                                     06A0 A1BC      : AD62
          JNE  XAD70                                      1604           : AD66
          MOVB @>A73A,@>A6BF                              D820 A73A A6BF : AD68
          RTWP                                            0380           : AD6E
XAD70     MOV  @>001A(R1),R8                              C221 001A      : AD70
          ANDI R8,>00FF                                   0248 00FF      : AD74
          CI   R8,>0072                                   0288 0072      : AD78
          JL   XAD86                                      1A04           : AD7C
          MOVB @>A13E,@>A6BF                              D820 A13E A6BF : AD7E
          RTWP                                            0380           : AD84
XAD86     CLR  R0                                         04C0           : AD86
          MOV  @>A2E2,R1                                  C060 A2E2      : AD88
          BL   @>A002                                     06A0 A002      : AD8C
          MOV  R0,@>ACA2                                  C800 ACA2      : AD90
          BL   @>A002                                     06A0 A002      : AD94
          MOV  @>A2E0,R1                                  C060 A2E0      : AD98
          INC  @>001A(R1)                                 05A1 001A      : AD9C
          MOV  R1,R7                                      C1C1           : ADA0
          AI   R7,>0104                                   0227 0104      : ADA2
          MOV  R0,R9                                      C240           : ADA6
XADA8     MOV  *R2,R8                                     C212           : ADA8
          MOV  R9,*R2+                                    CC89           : ADAA
          MOV  R8,R9                                      C248           : ADAC
          C    R2,R7                                      81C2           : ADAE
          JNE  XADA8                                      16FB           : ADB0
          MOV  R1,@>A2A6                                  C801 A2A6      : ADB2
          MOV  @>ACA4,@>A29E                              C820 ACA4 A29E : ADB6
          BLWP @>A232                                     0420 A232      : ADBC
          MOV  @>A2E2,R1                                  C060 A2E2      : ADC0
          BL   @>AEBC                                     06A0 AEBC      : ADC4
          MOV  R1,R2                                      C081           : ADC8
          AI   R2,>0004                                   0222 0004      : ADCA
          LI   R5,>A68C                                   0205 A68C      : ADCE
XADD2     MOV  *R5+,*R2+                                  CCB5           : ADD2
          CI   R5,>A696                                   0285 A696      : ADD4
          JNE  XADD2                                      16FC           : ADD8
          AI   R2,>0004                                   0222 0004      : ADDA
          MOV  @>ACA8,*R2+                                CCA0 ACA8      : ADDE
          MOV  @>ACAA,*R2+                                CCA0 ACAA      : ADE2
          BL   @>AECE                                     06A0 AECE      : ADE6
          INCT R2                                         05C2           : ADEA
          MOV  @>ACA2,*R2+                                CCA0 ACA2      : ADEC
          MOV  @>ACA4,*R2+                                CCA0 ACA4      : ADF0
          MOV  R1,@>A2A6                                  C801 A2A6      : ADF4
          MOV  R0,@>A29E                                  C800 A29E      : ADF8
          BLWP @>A232                                     0420 A232      : ADFC
          BL   @>AEBC                                     06A0 AEBC      : AE00
          MOV  R0,@>0102(R1)                              C840 0102      : AE04
          MOV  @>ACA2,@>A29E                              C820 ACA2 A29E : AE08
          BLWP @>A232                                     0420 A232      : AE0E
          RTWP                                            0380           : AE12
          DEC  R0                                         0600           : AE14
          MOVB *R3+,R5                                    D173           : AE16
          CB   R5,@>ACB1                                  9805 ACB1      : AE18
          JEQ  XAEA8                                      1345           : AE1C
          CB   R5,@>ACB2                                  9805 ACB2      : AE1E
          JNE  XAEB0                                      1646           : AE22
          CI   R2,>A68C                                   0282 A68C      : AE24
          JNE  XAE2E                                      1602           : AE28
          B    @>AEA8                                     0460 AEA8      : AE2A
XAE2E     MOVB @>A2CC,R2                                  D0A0 A2CC      : AE2E
          JEQ  XAE70                                      131E           : AE32
          CLR  @>A2CC                                     04E0 A2CC      : AE34
          MOV  @>A2E0,R1                                  C060 A2E0      : AE38
XAE3C     CLR  @>A29E                                     04E0 A29E      : AE3C
          MOV  R1,@>A2A6                                  C801 A2A6      : AE40
          BLWP @>A09E                                     0420 A09E      : AE44
          MOV  R1,R5                                      C141           : AE48
          AI   R5,>0004                                   0225 0004      : AE4A
          LI   R7,>A68C                                   0207 A68C      : AE4E
XAE52     C    *R7+,*R5+                                  8D77           : AE52
          JNE  XAE5E                                      1604           : AE54
          CI   R7,>A696                                   0287 A696      : AE56
          JEQ  XAEA0                                      1322           : AE5A
          JMP  XAE52                                      10FA           : AE5C
XAE5E     MOV  @>A2CC,R5                                  C160 A2CC      : AE5E
          INC  R5                                         0585           : AE62
          MOV  R5,@>A2CC                                  C805 A2CC      : AE64
          CI   R5,>0004                                   0285 0004      : AE68
          JNE  XAE3C                                      16E7           : AE6C
          JMP  XAEA8                                      101C           : AE6E
XAE70     MOV  @>A2E0,R1                                  C060 A2E0      : AE70
          MOV  R1,R8                                      C201           : AE74
          AI   R8,>0020                                   0228 0020      : AE76
          MOV  R1,R9                                      C241           : AE7A
          AI   R9,>001A                                   0229 001A      : AE7C
          MOV  *R9,R9                                     C259           : AE80
          ANDI R9,>00FF                                   0249 00FF      : AE82
          BL   @>A1BC                                     06A0 A1BC      : AE86
          JNE  XAEA8                                      160E           : AE8A
          MOV  @>A29E,@>ACA4                              C820 A29E ACA4 : AE8C
          MOV  @>A2E2,R1                                  C060 A2E2      : AE92
          MOV  @>A2E0,@>A2E2                              C820 A2E0 A2E2 : AE96
          MOV  R1,@>A2E0                                  C801 A2E0      : AE9C
XAEA0     MOV  R0,R0                                      C000           : AEA0
          JEQ  XAEA8                                      1302           : AEA2
          B    @>AD30                                     0460 AD30      : AEA4
XAEA8     MOVB @>A739,@>A6BF                              D820 A739 A6BF : AEA8
          RTWP                                            0380           : AEAE
XAEB0     CI   R2,>A696                                   0282 A696      : AEB0
          JEQ  XAEA8                                      13F9           : AEB4
          MOVB R5,*R2+                                    DC85           : AEB6
          B    @>AD42                                     0460 AD42      : AEB8
          MOV  R1,R10                                     C281           : AEBC
          AI   R10,>0104                                  022A 0104      : AEBE
XAEC2     CLR  *R1+                                       04F1           : AEC2
          C    R1,R10                                     8281           : AEC4
          JNE  XAEC2                                      16FD           : AEC6
          AI   R1,>FEFC                                   0221 FEFC      : AEC8
          RT                                              045B           : AECC
          MOV  R11,@>AF88                                 C80B AF88      : AECE
          CLR  @>AF86                                     04E0 AF86      : AED2
          MOV  @>A000,R12                                 C320 A000      : AED6
          SBO  0                                          1D00           : AEDA
          SBO  1                                          1D01           : AEDC
          CLR  *R2+                                       04F2           : AEDE
          CLR  *R2+                                       04F2           : AEE0
XAEE2     LI   R3,>AC90                                   0203 AC90      : AEE2
          LI   R4,>5FF2                                   0204 5FF2      : AEE6
          LI   R5,>0004                                   0205 0004      : AEEA
          MOV  *R4,*R3                                    C4D4           : AEEE
XAEF0     SBO  3                                          1D03           : AEF0
          MOVB *R4,*R3+                                   DCD4           : AEF2
          SBZ  3                                          1E03           : AEF4
          MOVB *R4,*R3+                                   DCD4           : AEF6
          INCT R4                                         05C4           : AEF8
          DEC  R5                                         0605           : AEFA
          JNE  XAEF0                                      16F9           : AEFC
          SBO  3                                          1D03           : AEFE
          MOV  *R4+,*R3                                   C4F4           : AF00
          SWPB *R3                                        06D3           : AF02
          SBZ  3                                          1E03           : AF04
          MOVB *R4,*R3                                    D4D4           : AF06
          LI   R3,>AC90                                   0203 AC90      : AF08
XAF0C     CB   *R3+,@>A722                                9833 A722      : AF0C
          JEQ  XAF78                                      1333           : AF10
          CI   R3,>AC9A                                   0283 AC9A      : AF12
          JNE  XAF0C                                      16FA           : AF16
          AI   R2,>FFFC                                   0222 FFFC      : AF18
          MOV  R11,R3                                     C0CB           : AF1C
          BL   @>AF62                                     06A0 AF62      : AF1E
          SLA  R3,5                                       0A53           : AF22
          MOV  R3,*R2                                     C483           : AF24
          MOV  R10,R3                                     C0CA           : AF26
          BL   @>AF62                                     06A0 AF62      : AF28
          A    R3,*R2                                     A483           : AF2C
          MOV  @>5FEE,R3                                  C0E0 5FEE      : AF2E
          BL   @>AF62                                     06A0 AF62      : AF32
          SLA  R3,9                                       0A93           : AF36
          A    R3,*R2+                                    AC83           : AF38
          MOV  R9,R3                                      C0C9           : AF3A
          BL   @>AF62                                     06A0 AF62      : AF3C
          SLA  R3,11                                      0AB3           : AF40
          MOV  R3,*R2                                     C483           : AF42
          MOV  R8,R3                                      C0C8           : AF44
          BL   @>AF62                                     06A0 AF62      : AF46
          SLA  R3,5                                       0A53           : AF4A
          A    R3,*R2                                     A483           : AF4C
          MOV  R7,R3                                      C0C7           : AF4E
          BL   @>AF62                                     06A0 AF62      : AF50
          SRL  R3,1                                       0913           : AF54
          A    R3,*R2+                                    AC83           : AF56
XAF58     SBZ  0                                          1E00           : AF58
          SBZ  1                                          1E01           : AF5A
          MOV  @>AF88,R11                                 C2E0 AF88      : AF5C
          RT                                              045B           : AF60
          MOV  R3,R4                                      C103           : AF62
          SRL  R4,8                                       0984           : AF64
          ANDI R4,>000F                                   0244 000F      : AF66
          LI   R5,>000A                                   0205 000A      : AF6A
          MPY  R4,R5                                      3944           : AF6E
          ANDI R3,>000F                                   0243 000F      : AF70
          A    R6,R3                                      A0C6           : AF74
          RT                                              045B           : AF76
XAF78     MOV  @>AF86,@>AF86                              C820 AF86 AF86 : AF78
          JNE  XAF58                                      16EC           : AF7E
          SETO @>AF86                                     0720 AF86      : AF80
          JMP  XAEE2                                      10AE           : AF84
          DATA >0000
          DATA >0000
          DATA >0000
          
          END 

Myarc.hfe

  • Like 2
Link to comment
Share on other sites

I found this file in my archives. Perhaps it will help you in your endeavor.

 

As for the format and encoding, the last time I looked into this was the year someone stole my floppy disk backup of John Birdwell's hard drive from my table at one of the Faires. If I recall correctly, the files are copied to/from the disk in 256 byte chunks (i.e., a sector) for program files and by record length for any other file. No compression. I don't recall if the folders and directories are stored on the first disk or contained as part of the copied FDR information. I no longer remember whether or not the HFDC backup/restore routines use the same format as the WD1000; considering how code was re-used between the two cards, it is possible you'll find more clues in the Myarc Disk Manager 5 source code.

wds1000-sources.zip

Edited by InsaneMultitasker
  • Like 4
Link to comment
Share on other sites

The Personality Card was Myarc's first hard drive controller. They wrote a whole bunch of XB and Assembly routines to do disk management for it. Some of the DSR calls and what directories or certain files are different between their second controller, the Myarc HFDC.

 

A "Create directory" call by the Myarc Disk Manager for the Personality Card does not work on a HFDC, for example. The Personality Card Disk Manager does not recognize a file created by the HDFC MDM5 - it thinks it's a directory if it's in the root.

 

So, there are differences between the two DSRs and/or disk managers. These differences probably also extend to the backup/restore routines between the two cards. The MDM5 restore routine doesn't work on the Personality Card Disk Manager's backups. Shown below is a hex dump via TIMT of what a backup file looks like (1278 sectors on each disk, DIS/FIX 255). As Tim said, it might just be a header on the backup file, sector information dumps afterward, and then the actual file. The second and following disks immediately begins where the first cut off (there's no header - it goes straight into data). Michael Zapf has the files in question to take a look at them.

 

In the below case:

 

>00->2F or >00->27 - Backup header

>28->5F or >30->5F - Directory Block

>60->F0 or >68-F0 - File Descriptor

>F1 or >F2 - Start of File

 

That's just a rough guess. I need to let you gurus take a crack at this. Maybe the above source code will help. :)

post-22866-0-89028500-1518970185_thumb.png

  • Like 1
Link to comment
Share on other sites

From the screen capture above it seems that the backup file is laid out with path.filename entries containing 40 characters (the myarc winchester standard) and 8 bytes for a date/time stamp. I would guess each disk will start with the volume name entry then continue with directory/file entries as needed. Inspecting two images should tell you what to expect. Edit: I just noticed that you reviewed the subsequent images; the DF255 filename is probably used to ensure the proper sequence.

 

The three entries seem to be:

 

1. The volume (ie, hard drive name) + date/time

2. The current directory + date/time

3. The current filename (with full path) + date/time + 8 byte for the Additional Info block (used by level 2 IO to define the file type, attributes, record len, total records).

 

DF255 indicates that only 255 bytes are stored in each record/sector. (Note the last byte is e5 in this image) The restore routine will need to read and parse and concatonate the data, but in general this is a pretty simple structure.

Edited by InsaneMultitasker
Link to comment
Share on other sites

From the screen capture above it seems that the backup file is laid out with path.filename entries containing 40 characters (the myarc winchester standard) and 8 bytes for a date/time stamp. I would guess each disk will start with the volume name entry then continue with directory/file entries as needed. Inspecting two images should tell you what to expect. Edit: I just noticed that you reviewed the subsequent images; the DF255 filename is probably used to ensure the proper sequence.

 

The three entries seem to be:

 

1. The volume (ie, hard drive name) + date/time

2. The current directory + date/time

3. The current filename (with full path) + date/time + 8 byte for the Additional Info block (used by level 2 IO to define the file type, attributes, record len, total records).

 

DF255 indicates that only 255 bytes are stored in each record/sector. (Note the last byte is e5 in this image) The restore routine will need to read and parse and concatonate the data, but in general this is a pretty simple structure.

 

Awesome, thanks!

 

I figured we'd be able to decipher this. Michael Zapf or Fred Kaal should be able to help with this with their respective image tools. I've reached out to both.

 

Edit: Can you tell what the date/time the backup was made by looking at those eight byte?

Link to comment
Share on other sites

I plugged the date/time stamp values into an existing file on one of my images. 1995/14/26 (yy/mm/dd) is what came back out. The time was 28:28:26. I decompressed the bytes by hand and got the same values for the date/time. Maybe it is computed slightly differently than the information I have here.

 

I think the directory and file entries are laid out like this:

 

directory: <directory path.filename 40 bytes><"DIR " text 4 bytes><creation date/time 4 bytes><8 bytes, additional info flags?>

file: <directory path.filename 40 bytes><creation date 4 bytes><modified date 4 bytes><additional info flags 8 bytes>

Link to comment
Share on other sites

I plugged the date/time stamp values into an existing file on one of my images. 1995/14/26 (yy/mm/dd) is what came back out. The time was 28:28:26. I decompressed the bytes by hand and got the same values for the date/time. Maybe it is computed slightly differently than the information I have here.

 

I think the directory and file entries are laid out like this:

 

directory: <directory path.filename 40 bytes><"DIR " text 4 bytes><creation date/time 4 bytes><8 bytes, additional info flags?>

file: <directory path.filename 40 bytes><creation date 4 bytes><modified date 4 bytes><additional info flags 8 bytes>

 

I tried punching that into MDM5. It didn't like the invalid date format. I wonder if MDM5's restore would work if we figured out the date/time syntax that it likes maybe? Wonder what would happen if you make a 01/01/90 hash for me and I can maybe edit the master 4 byte date header it's looking for.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...