
 1000  *SAVE GENDRON DOS MODS
 1010  *--------------------------------
 1020  *  DOS PROTECTION FOR THE DIRECT COMMAND "ERROR 15"
 1030  *   WRITTEN BY RICHARD GENDRON FOR USE ON TRANSFERS ][
 1040  *  (514) 738-1247 (AE/CAT-FUR)
 1050  *--------------------------------
 1060         .OR $300
 1070  *--------------------------------
 1080  INSTALL
 1090         LDA #$4C     BUILD "USR" VECTOR
 1100         STA $0A      "JMP" OPCODE
 1110         LDA #USR
 1120         STA $0B
 1130         LDA /USR
 1140         STA $0C
 1150  *---MOVE DATA INTO DOS-----------
 1160         LDX #P1-PATCHES      POINT AT OUR PATCHES
 1170  ***    JMP PATCH.DOS
 1180  *--------------------------------
 1190  PATCH.DOS
 1200         LDA #$A026
 1210         STA $00
 1220         LDA $37      48K OR 64K DOS?
 1230         CMP #$BD     CARRY CLEAR IF 48K
 1240         LDA /$A026   ...48K
 1250         BCC .1       ...48K
 1260         LDA /$E026   ...64K
 1270  .1     STA $01
 1280         LDY #4       MOVE 5 BYTES
 1290  .2     LDA PATCHES,X
 1300         STA ($00),Y
 1310         DEX
 1320         DEY
 1330         BPL .2
 1340         RTS
 1350  *--------------------------------
 1360  REBOOT
 1370         SEI                  TURN OFF ANNOYING INTERRUPTS
 1380         JSR $03EA            RESET THE I/O HOOKS
 1390         LDA $37              LETS SEE WHICH DOS WE ARE USING
 1400         CMP #$BD             IS IT 64K DOS ?
 1410         BMI .1               SNIFF, NO IT IS NOT
 1420         BIT $C081            YES IT IS, SO TURN OFF THE LANGUAGE CARD
 1430         BIT $C081            TWICE, EVERYONE KNOWS WHY ?.
 1440         JSR $E316            DOS "CLOSE" ALL FILES
 1450         JMP $D566            NOW LET'S JUMP TO THE APPLESOFT "RUN"
 1460  .1     JSR $A316            DOS "CLOSE" ALL FILES (NO TROUBLE PLS)
 1470         JMP $A4FC            48K INTERNAL "DOS RUN"
 1480  *--------------------------------
 1490  USR
 1500         LDY #0               START OF LOOP COUNTER
 1510  .1     LDA PASSWORD,Y       GET PASSWORD TEXT
 1520         BEQ .2               ...END OF STRING
 1530         JSR PRINT            NO, SO PRINT IT
 1540         INY                  INCREMENT THE LOOP
 1550         BNE .1               FOREVER LOOP (NEVER CAN EXIT)
 1560  *--------------------------------
 1570  .2     JSR INPUT            ALL TEXT PRINTED SO LET'S GET A KEY
 1580         CMP #"*              WAS IT A "*" ? (OR WHATEVER YOU WANT)
 1590         BNE .4               NO IT WAS NOT , SO BYE BYE
 1600         JSR INPUT            YES IT WAS, SO GET ANOTHER KEY
 1610         CMP #".              WAS IT A "." (OR WHATEVER YOU WANT)
 1620         BNE .4               NO IT WAS NOT, SO BYE BYE
 1630  *--------------------------------
 1640         LDX #P2-PATCHES
 1650         JSR PATCH.DOS
 1660  .4     RTS                  WE HAVE FINISHED
 1670  *--------------------------------
 1680  *   TEXT TO BE PRINTED WHEN A
 1690  * "PRINT  USE(0)" COMMAND IS DONE
 1700  *        IN APPLESOFT
 1710  *--------------------------------
 1720  PASSWORD
 1730         .AS -"PW:"
 1740         .HS 00
 1750  *--------------------------------
 1760  *  INPUT AND PRINT SUBROUTINES
 1770  *--------------------------------
 1780  PRINT  JMP ($36)
 1790  INPUT  JMP ($38)
 1800  *--------------------------------
 1810  PATCHES
 1820         JMP REBOOT   CALL OUR NEW CODE
 1830         NOP          NEEDED FOR DIVERSI-DOS
 1840  P1     NOP
 1850  *--------------------------------
 1860         .HS A9023909    ORIGINAL CODE
 1870  P2     .HS A9
 1880  *--------------------------------
 9999         .LIF

