print " *** COMMON .MAX ***" ; ; ********** 63K CP/M 2.2 COMMON-BANK ********** ; * * ; * Andreas Dobbertin 01.02.1989 * ; * * ; * Spezial-Version f}r PC International * ; * Andreas Dobbertin 13.02.1989 * ; * * ; ********************************************** ; ; ; ------ >>> Neue BIOS-Sprungleiste <<< ------------ ; common jp boot ;Kaltstartinitialisierung jp wboot ;Warmstart ausf}hren jp const ;Konsolenstatus abfragen jp conin ;Konsoleneingabe jp conout ;Konsolenausgabe jp list ;Druckerausgabe jp punch ;Lochstreifenstanzer jp reader ;Lochstreifenleser jp home ;Kopf auf Spur 00 stellen jp seldsk ;Laufwerk ausw{hlen jp settrk ;Spur ausw{hlen jp setsec ;Record w{hlen jp setdma ;Datenpufferadresse setzen jp read ;Record lesen jp write ;Record schreiben jp listst ;Druckerstatus abfragen jp sectran ;Recordnummer }bersetzen ; jp charset ;Zeichensatz ausw{hlen jp doscall ;CALL DOS/SYSTEM-Routine jp sys2tpa ;LDIR SYS -> TPA jp tpa2sys ;LDIR TPA -> SYS ; ; ------ >>> switching BIOS-Sprungvector <<< ------- ; boot call syscall defw newboot wboot call syscall defw newwarm const call syscall defw #2506 conin call syscall defw #2509 conout call syscall defw newcono .list call syscall defw newlist punch call syscall defw #2512 .reader call syscall defw #2515 home call syscall defw #2518 seldsk call syscall defw newsdsk settrk call syscall defw #251e setsec call syscall defw #2521 setdma call syscall defw newsdma .read call syscall defw newread .write call syscall defw newwrte .listst call syscall defw #252d sectran call syscall defw #2530 ; charset call syscall defw setchar sys2tpa call syscall defw $-$ tpa2sys call syscall defw $-$ ; ; ------ >>> COMMON BANK Interrupt Routine <<< ----- ; intntry di exx push bc ld (iholdsp+1),sp ld bc,#7fc1 out (c),c ld sp,intstck call new_int out (c),c iholdsp ld sp,$-$ pop bc exx ei ret ; ; ------ >>> DOS/SYSTEM-Routine aufrufen <<< ------- ; doscall ld (hold_hl+1),hl pop hl push hl inc hl inc hl ex (sp),hl push hl hold_hl ld hl,$-$ ; ; ------ >>> CALL in SYSTEM-BANK ausf}hren <<< ----- ; syscall di exx ex (sp),hl push de push bc ld (sholdsp+1),sp ld e,(hl) inc hl ld d,(hl) ld hl,(#0003) ld bc,#7fc1 out (c),c ld sp,sysstck call newbios out (c),c sholdsp ld sp,$-$ pop bc pop de pop hl exx ei ret ; ; ------ >>> CCP zum Warmstart anspringen <<< ------ ; jumpccp out (c),c ;TPA wieder einschalten exx ;Haupt-Registersatz ein jp (hl) ;Den CCP anspringen ; ; ------ >>> Unbenutzter ( freier ) Bereich <<< ---- ; defs #fe00-$,#00 ; ; ------ >>> Daten- und Systemvariablen <<< -------- ; dph_a defs 8,#00 ;DPH Drive A defw dirbuf defw dpb_a defw csv_a defw alv_a ; dph_b defs 8,#00 ;DPH Drive B defw dirbuf defw dpb_b defw csv_b defw alv_b ; dph_c defs 8,#00 ;DPH Drive C (reserviert) defw dirbuf defw dpb_c defw csv_c defw alv_c ; dph_d defs 8,#00 ;DPH Drive D (reserviert) defw dirbuf defw dpb_d defw csv_d defw alv_d ; dpb_a defs 16,#00 ;DPB Drive A dpb_b defs 16,#00 ;DPB Drive B dpb_c defs 16,#00 ;DPB Drive C (reserviert) dpb_d defs 16,#00 ;DPB Drive D (reserviert) ; alv_a equ #fe80 ;ALV Drive A alv_b equ #fea0 ;ALV Drive B alv_c equ #fec0 ;ALV Drive C (reserviert) alv_d equ #fee0 ;ALV Drive D (reserviert) ; csv_a equ #ff00 ;CSV Drive A csv_b equ #ff20 ;CSV Drive B csv_c equ #ff40 ;CSV Drive C (reserviert) csv_d equ #ff60 ;CSV Drive D (reserviert) ; dirbuf equ #ff80 ;Directory-Buffer