;---------------------------------------------------------------------- ; Initialize the Serial I/O Ports (16_Jul_84) ;-------------------------------------------- ; 1) This routine initializes both channels of the darts and the ; Sio. They are set for 8 bits, no parity, x16 clock rate, and ; 2 stop bits. In addition, dtr, and rts, are programmed to be on. ; IntUrt: ld b,Init_Tbl_Length ;B:= Initialization Table Length ld hl,Init_Tbl ;HL:= Pointer to Initialization Table IuLp1: ld a,(hl) ;Repeat out (s1stat),a ; Init Dart Chan1 out (s2stat),a ; Init Dart Chan2 out (s3stat),a ; Init Sio inc hl ; Increment Table Pointer djnz IuLp1 ;Unitl (whole table has been used) ret ;Return ; Initialization Table ;--------------------- ; Init_Tbl: db 00011000b ;senä channeì reseô commands db 00010000b ;reset ext/status interrupts db 4 ;select register 4 db 01001100b ; no par, x16, 2 stops db 3 ;select register 3 db 11000001b ; rx 8 bits, auto off, rx enabled db 5 ;select register 5 db 11101010b ; tx 8 bits, dtr/rts on tx enabled db 00010000b ;reset ext/status interupts again db 1 ;select register 1 db 00000000b ; disable all interrupts here End_Init_Tbl: Init_Tbl_Length equ (End_Init_Tbl - Init_Tbl)