10 ! --- LDISC --- 20 ! large disc support 30 ! JF Garnier, dec.2014, given as public code 40 SUB SETLD(A,N) 50 ! set the size N=2,4,8,16 (MB) of drive at address A 60 ! N=0 fixes 640KB disc attributes (HP-IL 1A INITIALIZE bug fix) 70 N=INT((N+1)/2) 80 IF N<1 THEN N=0 90 IF N>8 THEN N=8 100 IF DEVAID(A)#16 THEN 'ERR' 110 IF DEVID$(A)[1,6]="HP9114" THEN 'ERR' 120 SEND MTA LISTEN A DDL 4 DATA 0,0 ! seek to sector 0 130 SEND DDL 6 ! read it for partial write 140 IF N>0 THEN 220 150 ! fix dir len bug of HP-IL 1A 160 SEND DDL 3 DATA 18 ! point to byte 18 170 SEND DDL 0 DATA 0 180 ! 640KB disc attribute bytes: 80 tracks, 2 surfaces, 16 sectors/track 190 SEND DDL 3 DATA 24 ! point to byte 24 200 SEND DDL 0 DATA 0,0,0,80,0,0,0,2,0,0,0 END 16 210 GOTO 250 220 ! large disc attribute bytes: 125 tracks, N/2 surfaces, 64 sectors/track 230 SEND DDL 3 DATA 24 ! point to byte 24 240 SEND DDL 0 DATA 0,0,0,125,0,0,0,N,0,0,0 END 64 250 SEND DDL 7 UNL UNT 260 'ERR': END SUB