;ZM Custom Setup for MX-100 printer OPT1 equ 025Dh ;Option 1 message OPT2 equ 0281h ;Option 2 Message MISC equ 061Ch ;Drive & Print parameters ZM_DATE equ 1D21h ;ZM date routine ORG OPT1 ; !12345678901234567890123456789012! <---<<< 32 byte ruler <---<<< DB '1 = 80 Lines (16.5 cpi at 8 lpi)' ORG OPT2 ; !12345678901234567890123456789012! <---<<< 32 byte ruler <---<<< DB '2 = 57 Lines (10 cpi at 6 lpi) ' ORG MISC db 2 ;Define drive B: for serach path dw L1 ;Define L1 as default printer setup L1 db 80 ;80 lines per page dm ^[, 'F', ^O, ^[, 0 ;Emphsized OFF, condensed ON, 8 lpi If L1+18 ! $ # [L1+18] ;18 bytes max MSG 7,'String L1 is too long', ^m, ^j endif ds 18 - [$-L1] ;Adjustment for unused space L2 db 57 ;57 lines per page dm ^[, ^F, ^R, ^[, 2 ;Emphasized OFF, condensed OFF, 6 lpi if L2+18 ! $ # [L2+18] ;18 bytes max MSG 7,'String L2 is too long', ^m, ^j endif ds 18 -[$-L2] ;Adjustment for unused space L3 dm ^R, ^[, 'N', 6 ;Condensed OFF, Skip 6 at perf if L3+18 ! $ # [L3+18] ;18 bytes max, ^m, ^j MSG 'String L3 is too long' endif ORG ZM_DATE ;Osborne-1 date routine for ZM ; ;E: DE >> Date field in header ;X: Date field filled in form `yy/mm/dd' ;A: AF, BC, DE and HL ; SYSDATÅ eqõ 0EF63h ;Osborne-± datå iî `dd/mm/yy' LD HL,SYSDATE +3 ;point to year LD A,(HL) OR A RET Z ;Date not entered CALL B2DEC1 ;Convert year CALL B2DEC ;Convert month ;Convert day B2DEC INC DE ;Next feild DEC HL ; and next item LD A,(HL) B2DEC1 LD B,'0' -1 ;Start short for 1st Inc Mark Loop INC B SUB 10 JR NC,Loop ;Count ten's digit ADD 10 +'0' ;Restore bad count, & make ascii EX DE,HL ;Point to field w/ HL LD (HL),B ; and store ten's digit INC HL ;Step to next spot LD (HL),A ; and store unit's digit EX DE,HL ;Restore Original HL,DE RET END ;ZM CUSTOM SETUP