|
DataMuseum.dkPresents historical artifacts from the history of: Jet Computer Jet80 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Jet Computer Jet80 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 4224 (0x1080) Types: TextFile Names: »BOOT.Z80«
└─⟦7303e23ba⟧ Bits:30003507 JET80 System diskette └─ ⟦this⟧ »BOOT.Z80« └─⟦a844860b7⟧ Bits:30002858 CP/M Plus (tm) Version 3.0 for JET80 └─ ⟦this⟧ »BOOT.Z80« └─⟦c10cc8855⟧ Bits:30002859 CP/M Plus med Hit & Dit filoverførsel for JET80 └─ ⟦this⟧ »BOOT.Z80«
TITLE 'BOOT.Z80' ;*********************************************************** ;* THIS MODULE PATCHES THE IO-PARAMETERS FROM THE LOADER * ;* TO THE SCB.ASM AND CHARIO.Z80. * ;* IT ALSO LOADS CCP.COM ON COLDBOOT TO A RESERVED AREA * ;* IN BANK0 0000H - 0DFFH, FROM WHERE IT WILL BE RELOADED * ;* TO BANK1 ADDRESS 0100H ON WARMBOOT. * ;*********************************************************** ; LATEST CHANGE: 1984-06-20. PSW. ; BIOSREVSION D. .Z80 PAGE 42 FALSE EQU 0 TRUE EQU NOT FALSE SWITCH EQU 1CH ; BIT5: TERMINAL TYPE CR EQU 13 LF EQU 10 BDOS EQU 5 ; HOPP-VEKTOR TO CP/M BASE1 EQU 100H ; CCP I BANK 1 BASE0 EQU 000H ; CCP I BANK 0. CIVC EQU 20H ; IN LOADER, BUT SWITCH DEPENDING COVC EQU 22H ; -"- , -"- LOVC EQU 24H ; IN LOADER AIVC EQU 26H ; -"- AOVC EQU 28H ; -"- C0BD EQU 2AH ; BAUD DEV#0 C1BD EQU 2BH ; BAUD DEV#1 S1STRT EQU 30H ; SIO TABLES SILEN EQU 23H ; LENGTH EXTRN INTVECT,?PMSG EXTRN ?BNKSL,?MOV,?XMOV EXTRN @COVEC,@CIVEC,@LOVEC,@AOVEC,@AIVEC EXTRN C0BAUD,C1BAUD,SI1ATBL ENTRY ?INIT,?PATCH,?LDCCP,?RLCCP EXTRN ?TITEL PAGE DSEG ;; BANK 0. ; ?PATCH -- THIS ROUTINE PATCHES THE IO-PARAMETERS ; FROM THE LOADER. ?PATCH: LD HL,(CIVC) ;; CONSOLE INPUT VECTOR LD (@CIVEC),HL LD HL,(COVC) ;; CONSOLE OUTPUT VECTOR LD (@COVEC),HL IN A,(SWITCH) ;; AND 00100000B ;; GRAPHIC TERMINAL ? JR Z,PATCH1 ;; NO...JUMP LD HL,1000H ;; SET DEVICE GRAPH: LD (@CIVEC),HL ;; FOR CONSOLE INPUT LD (@COVEC),HL ;; FOR CONSOLE OUTPUT. PATCH1: LD HL,(LOVC) ;; LIST OUTPUT VECTOR LD (@LOVEC),HL LD HL,(AIVC) ;; AUX INPUT VECTOR LD (@AIVEC),HL LD HL,(AOVC) ;; AUX OUTPUT VECTOR LD (@AOVEC),HL LD A,(C0BD) ;; BAUD DEV#0 LD (C0BAUD),A LD A,(C1BD) ;; BAUD DEV#1 LD (C1BAUD),A LD HL,S1STRT ;; MOVE SIO TABLES LD DE,SI1ATBL LD BC,SILEN LDIR RET ; ?INIT -- SET UP INTERRUP VECTOR ENABLE INTERRUPT AND ; WRITE A PART OF SIGNON MESSAGE. ?INIT: LD HL,INTVECT LD A,H ;; LOAD INTERRUPT VECTOR PAGE LD I,A ;; INTO Z80 REGISTER I. EI ;; MUST GO IF GRAPHIC TERM. LD HL,SIGNON ;; WRITE 1/2 ROW IN SIGNON. CALL ?PMSG LD HL,?TITEL ;; WRITE 1/2 ROW IN SIGNON. CALL ?PMSG ;; IS IN DRIVES.ASM RET CSEG ; BANK1 ; ?LDCCP -- IS CALLED FROM BIOSKRNL.Z80 TO LOAD CCP FROM ; THE FILE CCP.COM. IT WILL BE STORED IN A BUFFER ; AREA IN BANK1 AND WHEN ?RLCCP IS CALLED IT WILL ; BE RELOADED TO BANK1 FOR EXECUTION. ; NOTE: WHEN ?RLCCP IS CALLED BANK1 IS ACTIVE. ?LDCCP: XOR A LD (CCP$FCB+15),A LD HL,0 LD (FCB$NR),HL LD DE,CCP$FCB ; OPEN FILE 'CCP.COM' LD C,15 CALL BDOS INC A ; FILE OPEN? JR NZ,CCPOPEN ; YES...JUMP CCPERR: LD HL,ERRCCP LD A,0 ; SET BANK0 CALL ?BNKSL CALL ?PMSG ; WRITE ERROR MESSAGE LD A,1 CALL ?BNKSL LD C,1 ; GET CONSOLE INPUT CALL BDOS LD HL,CRLF CALL ?PMSG ; NEW LINE. JR ?LDCCP ; TRY AGAIN. ; LOAD CCP FROM 'CCP.COM' CCPOPEN: LD DE,26 ; UP TO 26 SECT. READ LD C,44 ; MULTI-SECTOR-COUNT CALL BDOS LD DE,BASE1 ; ADDRESS IN BANK1. LD C,26 CALL BDOS ; SET DMA ADDRESS LD DE,CCP$FCB LD C,20 CALL BDOS ; READ RECORDS. CP 1 ; ANY ERRORS? JR NZ,CCPERR ; YES...JUMP CCPOP3: LD B,0 ; DEST.-BANK LD C,1 ; SOURCE-BANK CALL ?XMOV LD DE,BASE1 ; SOURCE-ADDRESS LD HL,BASE0 ; DEST.-ADDRESS JR RLOOP1 ; ?RLCCP -- RELOADS CCP FROM BANK0 0000H - 0DFFH TO ; BANK1 0100H - ; ?LDCCP USES THE MAIN PART OF THIS ROUTINE ; TO MOVE CCP FROM BANK1 TO BANK0 ON COLDBOOT. ?RLCCP: LD B,1 ; DEST.-BANK LD C,0 ; SOURCE-BANK CALL ?XMOV LD DE,BASE0 ; SOURCE-ADDRESS LD HL,BASE1 ; DEST.-ADDRESS RLOOP1: LD BC,13*256 ; COUNT CALL ?MOV LD A,1 ; SET BANK1 JP ?BNKSL CCP$FCB: DEFB 1 ; DRIVE A DEFB 'CCP COM' DEFB 0 ; EX DEFB 0 ; S1 DEFB 0 ; S2 DEFB 0 ; RC DEFW 0,0,0,0 ; D0 -- DEFW 0,0,0,0 ; --DN FCB$NR: DB 0 DB 0,0,0 CRLF: DEFB CR,LF,0 DSEG ; MESSAGES IN BANK0. ERRCCP: DEFB 'CCP.COM-error. Press <RET> to retry',0 SIGNON: DEFB CR,CR,LF DEFB 'CP/M Plus Version 3.0 - Jet-',0 END «eof»