; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; ; CRTPAT.ASM ; ; source code for default CRTPAT for OSBORNE-1 ; ;label address opcode operands comments ; CRTPAT m04DB mov C,A ;put char in C m04DC lda m050B ;put BYTE in A m04DF ora A ;test for null m04E0 mov A,C ;put char in A m04E1 jz m04EB ;if BYTE is null jump TSTESC m04E4 xra A ;set A = null m04E5 sta m050B ;put null in BYTE m04E8 jmp m0505 ;jump GOBIOS TSTESC m04EB cpi 1B ;compare ESC m04FD jnz m04F6 ;if not ESC jump TSTSP m04F0 sta m050B ;store ESC in BYTE m04F3 jmp m0505 ;jump GOBIOS TSTSP m04F6 cpi 20 ;compare SPACE ;complement carry set if char >= 20h m04F8 jc m0505 ;if Control Char jump GOBIOS m04FB mov A,B ;put Video Attribute in A m04FC ani 08 ;mask Underline m04FE jz m0505 ;if not underline jump GOBIOS m0501 mov A,C ;put char in A m0502 ori 80 ;set high bit for underline m0504 mov C,A ;put char back in C GOBIOS m0505 lhld m0001 ;HL= BIOS WARMSTART address = BIOS+03 m0508 mvi L,0C ;HL= BIOS CONOUTPUT address = BIOS+0C m050A pchl ;jump to BIOS CONOUTPUT BYTE m050B db 0 ;Scratch byte PRNID m055B ; ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -