CLASS #5: Indirect with or without auto-inc and read/write channel indirectLoad/Store to register:
101 rrr 0ip xxx p=0 => rrr <-- [xxx] ; Load indirect { ldx r, x }
p=1 => rrr --> [xxx] ; Store indirect { stx r, x }
i=1 => Increment xxx after transfer { ldy r, x }{ sty r, x }
Read/Write to selected channel:
101 000 10p xxx p=0 => [xxx] <-- Channel Data path ; read data indirect { ldch x }
p=1 => [xxx] --> Channel Data path ; write data indirect { stch x }
101 000 11p xxx p=0 => [xxx] <-- Channel Control reg ; read ctl indirect { ldct x }
p=1 => [xxx] --> Channel Control reg ; write ctl indirect { stct x }
These last four instructions provide the only way to access peripherals by software. Transfer is always indirect between Memory and the selected channel, using any of the suitable register as a pointer.
|