;*** PATCHES TO CCP/BDOS ; NOLIST ; ; RESTRICTED RIGHTS LEGEND ; ------------------------ ; ; "Use, duplication, or disclosure by the ; government is subject to restrictions as set forth ; in paragraph (b) (3) (B) of the Rights in Technical ; Data and Computer Software clause in DAR ; 7-104.9(a). Contractor/manufacturer is Zenith ; Data Systems Corporation of Hilltop Road, St. ; Joseph, Michigan 49085. ; LIST ZPATCH: MOV CS:ZPATAX,AX ;SAVE REGS MOV CS:ZPATBX,BX MOV CS:ZPATES,ES POP BX ;RETRIEVE IRET INFO & RESTORE POP ES ; INTERRUPT STATUS POPF MOV AL,ES:[BX] ;GET PATCH # MOV CS:ZPATNUM,AL MOV AX,CS:ZPATAX ;RESTORE REGS MOV BX,CS:ZPATBX MOV ES,CS:ZPATES CMP CS:ZPATNUM,2 ;Q. VALID PATCH # JE PATCH02 ; BR IF YES PUSHF ;SET UP AS IF SWI CLI PUSH ES PUSH BX JMP INTX3 ;EXIT THROUGH COMMON SWI EXIT ZPATCHX EQU OFFSET $ DSEG ORG ZPATCHX ZPATNUM RB 1 ZPATAX RW 1 ZPATBX RW 1 ZPATES RW 1 ZPATCHY EQU OFFSET $ CSEG ORG ZPATCHY ;** PATCH #02 ; ; MODIFY CCP TO RUN 8 BIT USER PROGRAM IF 16 BIT ONE IS NOT FOUND. ; PATCH02: IF R8085 LEA DI,COMFCB+9 ;CHANGE FILE TYPE TO '.COM' LEA SI,COMTYPE MOV CX,3 CLD REP MOVSB CALL OPENC ;Q. DOES .COM FILE EXISTS JNZ PATCH02A ; BR IF YES ENDIF CALL RESETDISK JMP JPCOMER IF R8085 ; TRY TO GET 64K BANK OF MEMORY PATCH02A: MOV R85MCBA,1024/16*64 PATCH02B: MOV CL,GAMREG ;ASK FOR 64K OF MEMORY LEA DX,R85MCB ; ALIGNED ON 64K BOUNDARY CALL BDOS CMP AL,0 ;Q. AVAILABLE JE PATCH02D ; BR IF YES ADD R85MCBA,1024/16*64 ;BUMP TO NEXT BANK CMP R85MCBA,1024/16*64*15 ;Q. AT TOP BANK JB PATCH02B ; BR IF NOT -- KEEP TRYING PATCH02C: JMP LOADERR ; LOAD 8085 PROGRAM PATCH02D: CALL LDPROG JC PATCH02C ;BR IF ERROR ; SETUP BASE PAGE OF 8085 RUNTIME PACKAGE INC NCCPALLOC ;INDICATE USER JOB TO BE RUN MOV BX,MEM_STK_PTR ;FLAG 8085 MEMORY SPACE AS USER MOV BYTE PTR 4[BX],1 MOV BX,CS ;CALCULATE CS VALUE ADD BX,(OFFSET R85)/16 MOV R85CS,BX ;PLACE INTO BASE PAGE JMP GOUSER PATCH02X EQU OFFSET $ DSEG ORG PATCH02X COMTYPE DB 'COM' ENDIF PATCH02Y EQU OFFSET $ CSEG ORG 046CH ;! RESETDISK: ;! ORG 072FH ;! JPCOMER: ;! IF R8085 ORG 008BH ;! BDOS: ;! ORG 00EDH ;! OPENC: ;! ORG 06DCH ;! LOADERR: ;! ORG 0738H ;! GOUSER: ;! DSEG ORG 0827H ;! COMFCB RB 0 ;! ORG 2393H ;! NCCPALLOC RB 1 ;! MEM_STK_PTR RW 1 ;! CSEG ORG PATCH02Y ENDIF