; report versions of various modules at system signon version equ 00 extrn ver$mv, ver$kr, ver$dk, ver$cn, ver$bt extrn ver$ck, ver$dt, ver$pm extrn ?pmsg public showvr disp$ver macro text lxi h,text call disp endm ; ; ascii characters ; tab equ 9 cr equ 0dh lf equ 0ah dseg ; ; version text for this module ; use as a sample for others ; ver$sv: db 'disp ' db version / 10 + '0' db version mod 10 + '0' db 0 ; ; display text from module ; with delimiters ; disp: lda counter inr a ani 03h ;only count to four sta counter cz newline call ?pmsg lxi h,fence call ?pmsg ret fence: db tab,'| ',0 ; ; print newline ; newline: push h lxi h,newlinem call ?pmsg pop h ret newlinem: db cr,lf,tab,'|',0 ;******************************** ; * ; main code * ; * ;******************************** ; ; display version for all modules ; showvr: mvi a,3 sta counter lxi h,vermess call ?pmsg disp$ver ver$mv ;move disp$ver ver$sv ;this module (show version) disp$ver ver$kr ;bios kernal disp$ver ver$dk ;disk disp$ver ver$cn ;console disp$ver ver$bt ;boot disp$ver ver$ck ;clock disp$ver ver$dt ;drivetable disp$ver ver$pm ;pmmi modem ret vermess: db cr,lf,'Module Versions:',cr,lf,0 ; ; variables ; counter: ds 1 end