%% =============================== %% 28.10.87 VERSION 51
%% ==   - == %%
%% =============================== %%
%-   :
%-   NOP
%-   &0C,&0E,&10  ,  SYSGEN'
%-  ,     1- 
GLOBAL (START=&00) (LOCATION=&00)
%%
%%  FLOPPY,  
%%
  EQUALS FKS=&FE78,FKD=&FE7A
  EQUALS READ=&6,RBUFF=&2,GO=&1,UNIT=&10

  EQUALS TPS=&FF74,TPB=&FF76

LOCALS LSTART
%-     NOP
. CCL
. BR   START
  DATA =IT04.&E0
%--   -------%
  DATA DXLENG                   %       %  SYSGEN
%-------------------------------%
  BYTES SELTAB=READ+GO,READ+GO+UNIT
  DATA =IT0C.&E0                        %BPT-IT

  REGISTERS BUFADR=%1,SECTOR=%2,TRACK=%3,ASTATE=%4,ADATA=%5

  EQUALS ASTRTR=&02

PROGRAM START()
  RDOPER:=SELTAB[R0]                    %  

  TRACK=1                               %  
  SECTOR='ASTRTR*4'                     %    
  SP=BUFADR(&400)                       %.   
  _SP=DXLENG                            % 

  ASTATE='FKS' ; ADATA='FKD'
  (DCYCLE(@SP) .ASL..ASL.
    SECTOR=+1
    @ASTATE=^PC
.RDOPER DAT 0                           *  +  .
.   BPT
    @ADATA=SECTOR                       % 
.   BPT
    @ADATA=TRACK                        % 
.   BPT
    @'TPB'="+"
    @ASTATE='RBUFF+GO'                  %  
    (WHILE
.     BPT
    WHILE @ASTATE:<0
      ^BUFADR:=@ADATA
    )WHILE
    (IF SECTOR=26
      SECTOR=0 ; TRACK=+1
      @'TPB'="/"
    )IF
  )DCYCLE
. TST (%6)+
  PC=SP

LABEL IT0C                              % IOT:  "IT"
  REPEAT @ASTATE=.BIT.&80A0 WHILE IS ZERO
  (IF IS NEGATIVE                       %  ?
LABEL IT04
    HALT
  )IF
  DESACTIVATE
